Documentation

Overview

    Package framework contains provider-independent helper code for building and running E2E tests with Ginkgo. The actual Ginkgo test suites gets assembled by combining this framework, the optional provider support code and specific tests via a separate .go file like Kubernetes' test/e2e.go.

    Index

    Constants

    View Source
    const (
    	// GPUResourceName is the extended name of the GPU resource since v1.8
    	// this uses the device plugin mechanism
    	NVIDIAGPUResourceName = "nvidia.com/gpu"
    
    	// TODO: Parametrize it by making it a feature in TestFramework.
    	// so we can override the daemonset in other setups (non COS).
    	// GPUDevicePluginDSYAML is the official Google Device Plugin Daemonset NVIDIA GPU manifest for GKE
    	GPUDevicePluginDSYAML = "https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml"
    )
    View Source
    const (
    	// How long to wait for a job to finish.
    	JobTimeout = 15 * time.Minute
    
    	// Job selector name
    	JobSelectorKey = "job"
    )
    View Source
    const (
    	EndpointHttpPort      = 8080
    	EndpointUdpPort       = 8081
    	TestContainerHttpPort = 8080
    	ClusterHttpPort       = 80
    	ClusterUdpPort        = 90
    
    	// Number of checks to hit a given set of endpoints when enable session affinity.
    	SessionAffinityChecks = 10
    )
    View Source
    const (
    	PDRetryTimeout    = 5 * time.Minute
    	PDRetryPollTime   = 5 * time.Second
    	VolumeSelectorKey = "e2e-pv-pool"
    )
    View Source
    const (
    	// KubeProxyLagTimeout is the maximum time a kube-proxy daemon on a node is allowed
    	// to not notice a Service update, such as type=NodePort.
    	// TODO: This timeout should be O(10s), observed values are O(1m), 5m is very
    	// liberal. Fix tracked in #20567.
    	KubeProxyLagTimeout = 5 * time.Minute
    
    	// KubeProxyEndpointLagTimeout is the maximum time a kube-proxy daemon on a node is allowed
    	// to not notice an Endpoint update.
    	KubeProxyEndpointLagTimeout = 30 * time.Second
    
    	// LoadBalancerLagTimeoutDefault is the maximum time a load balancer is allowed to
    	// not respond after creation.
    	LoadBalancerLagTimeoutDefault = 2 * time.Minute
    
    	// LoadBalancerLagTimeoutAWS is the delay between ELB creation and serving traffic
    	// on AWS. A few minutes is typical, so use 10m.
    	LoadBalancerLagTimeoutAWS = 10 * time.Minute
    
    	// How long to wait for a load balancer to be created/modified.
    	//TODO: once support ticket 21807001 is resolved, reduce this timeout back to something reasonable
    	LoadBalancerCreateTimeoutDefault = 20 * time.Minute
    	LoadBalancerCreateTimeoutLarge   = 2 * time.Hour
    
    	// Time required by the loadbalancer to cleanup, proportional to numApps/Ing.
    	// Bring the cleanup timeout back down to 5m once b/33588344 is resolved.
    	LoadBalancerCleanupTimeout = 15 * time.Minute
    
    	// On average it takes ~6 minutes for a single backend to come online in GCE.
    	LoadBalancerPollTimeout  = 15 * time.Minute
    	LoadBalancerPollInterval = 30 * time.Second
    
    	LargeClusterMinNodesNumber = 100
    
    	// Don't test with more than 3 nodes.
    	// Many tests create an endpoint per node, in large clusters, this is
    	// resource and time intensive.
    	MaxNodesForEndpointsTests = 3
    
    	// ServiceTestTimeout is used for most polling/waiting activities
    	ServiceTestTimeout = 60 * time.Second
    
    	// GCPMaxInstancesInInstanceGroup is the maximum number of instances supported in
    	// one instance group on GCP.
    	GCPMaxInstancesInInstanceGroup = 2000
    
    	// AffinityConfirmCount is the number of needed continuous requests to confirm that
    	// affinity is enabled.
    	AffinityConfirmCount = 15
    )
    View Source
    const (
    	// Poll interval for StatefulSet tests
    	StatefulSetPoll = 10 * time.Second
    	// Timeout interval for StatefulSet operations
    	StatefulSetTimeout = 10 * time.Minute
    	// Timeout for stateful pods to change state
    	StatefulPodTimeout = 5 * time.Minute
    )
    View Source
    const (
    	// How long to wait for the pod to be listable
    	PodListTimeout = time.Minute
    	// Initial pod start can be delayed O(minutes) by slow docker pulls
    	// TODO: Make this 30 seconds once #4566 is resolved.
    	PodStartTimeout = 5 * time.Minute
    
    	// Same as `PodStartTimeout` to wait for the pod to be started, but shorter.
    	// Use it case by case when we are sure pod start will not be delayed
    	// minutes by slow docker pulls or something else.
    	PodStartShortTimeout = 2 * time.Minute
    
    	// How long to wait for a pod to be deleted
    	PodDeleteTimeout = 5 * time.Minute
    
    	// PodEventTimeout is how much we wait for a pod event to occur.
    	PodEventTimeout = 2 * time.Minute
    
    	// If there are any orphaned namespaces to clean up, this test is running
    	// on a long lived cluster. A long wait here is preferably to spurious test
    	// failures caused by leaked resources from a previous test run.
    	NamespaceCleanupTimeout = 15 * time.Minute
    
    	// How long to wait for a service endpoint to be resolvable.
    	ServiceStartTimeout = 3 * time.Minute
    
    	// How often to Poll pods, nodes and claims.
    	Poll = 2 * time.Second
    
    	// service accounts are provisioned after namespace creation
    	// a service account is required to support pod creation in a namespace as part of admission control
    	ServiceAccountProvisionTimeout = 2 * time.Minute
    
    	// How long to try single API calls (like 'get' or 'list'). Used to prevent
    	// transient failures from failing tests.
    	// TODO: client should not apply this timeout to Watch calls. Increased from 30s until that is fixed.
    	SingleCallTimeout = 5 * time.Minute
    
    	// How long nodes have to be "ready" when a test begins. They should already
    	// be "ready" before the test starts, so this is small.
    	NodeReadyInitialTimeout = 20 * time.Second
    
    	// How long pods have to be "ready" when a test begins.
    	PodReadyBeforeTimeout = 5 * time.Minute
    
    	ServiceRespondingTimeout = 2 * time.Minute
    	EndpointRegisterTimeout  = time.Minute
    
    	// How long claims have to become dynamically provisioned
    	ClaimProvisionTimeout = 5 * time.Minute
    
    	// Same as `ClaimProvisionTimeout` to wait for claim to be dynamically provisioned, but shorter.
    	// Use it case by case when we are sure this timeout is enough.
    	ClaimProvisionShortTimeout = 1 * time.Minute
    
    	// How long claims have to become bound
    	ClaimBindingTimeout = 3 * time.Minute
    
    	// How long claims have to become deleted
    	ClaimDeletingTimeout = 3 * time.Minute
    
    	// How long PVs have to beome reclaimed
    	PVReclaimingTimeout = 3 * time.Minute
    
    	// How long PVs have to become bound
    	PVBindingTimeout = 3 * time.Minute
    
    	// How long PVs have to become deleted
    	PVDeletingTimeout = 3 * time.Minute
    
    	// How long a node is allowed to become "Ready" after it is restarted before
    	// the test is considered failed.
    	RestartNodeReadyAgainTimeout = 5 * time.Minute
    
    	// How long a pod is allowed to become "running" and "ready" after a node
    	// restart before test is considered failed.
    	RestartPodReadyAgainTimeout = 5 * time.Minute
    
    	// How long for snapshot to create snapshotContent
    	SnapshotCreateTimeout = 5 * time.Minute
    )
    View Source
    const (
    	Kb  int64 = 1000
    	Mb  int64 = 1000 * Kb
    	Gb  int64 = 1000 * Mb
    	Tb  int64 = 1000 * Gb
    	KiB int64 = 1024
    	MiB int64 = 1024 * KiB
    	GiB int64 = 1024 * MiB
    	TiB int64 = 1024 * GiB
    
    	// Waiting period for volume server (Ceph, ...) to initialize itself.
    	VolumeServerPodStartupTimeout = 3 * time.Minute
    
    	// Waiting period for pod to be cleaned up and unmount its volumes so we
    	// don't tear down containers with NFS/Ceph/Gluster server too early.
    	PodCleanupTimeout = 20 * time.Second
    )
    View Source
    const CurrentKubeletPerfMetricsVersion = "v2"

      CurrentKubeletPerfMetricsVersion is the current kubelet performance metrics version. This is used by mutiple perf related data structures. We should bump up the version each time we make an incompatible change to the metrics.

      View Source
      const (
      	// Default value for how long the CPU profile is gathered for.
      	DefaultCPUProfileSeconds = 30
      )
      View Source
      const (
      
      	// TODO(mikedanese): reset this to 5 minutes once #47135 is resolved.
      	// ref https://github.com/kubernetes/kubernetes/issues/47135
      	DefaultNamespaceDeletionTimeout = 10 * time.Minute
      )
      View Source
      const (
      
      	// DefaultNumNodes is the number of nodes. If not specified, then number of nodes is auto-detected
      	DefaultNumNodes = -1
      )
      View Source
      const DefaultPodDeletionTimeout = 3 * time.Minute
      View Source
      const NoCPUConstraint = math.MaxFloat64
      View Source
      const (
      	// NodeStartupThreshold is a rough estimate of the time allocated for a pod to start on a node.
      	NodeStartupThreshold = 4 * time.Second
      )

      Variables

      View Source
      var (
      	BusyBoxImage = imageutils.GetE2EImage(imageutils.BusyBox)
      
      	// Serve hostname image name
      	ServeHostnameImage = imageutils.GetE2EImage(imageutils.ServeHostname)
      )
      View Source
      var Factories = map[What]ItemFactory{
      	{"ClusterRole"}:        &clusterRoleFactory{},
      	{"ClusterRoleBinding"}: &clusterRoleBindingFactory{},
      	{"DaemonSet"}:          &daemonSetFactory{},
      	{"Role"}:               &roleFactory{},
      	{"RoleBinding"}:        &roleBindingFactory{},
      	{"Secret"}:             &secretFactory{},
      	{"Service"}:            &serviceFactory{},
      	{"ServiceAccount"}:     &serviceAccountFactory{},
      	{"StatefulSet"}:        &statefulSetFactory{},
      	{"StorageClass"}:       &storageClassFactory{},
      }
      View Source
      var ImageWhiteList sets.String

        ImageWhiteList is the images used in the current test suite. It should be initialized in test suite and the images in the white list should be pre-pulled in the test suite. Currently, this is only used by node e2e test.

        View Source
        var InterestingAPIServerMetrics = []string{
        	"apiserver_request_total",
        
        	"apiserver_request_latencies_summary",
        	"apiserver_init_events_total",
        }
        View Source
        var InterestingClusterAutoscalerMetrics = []string{
        	"function_duration_seconds",
        	"errors_total",
        	"evicted_pods_total",
        }
        View Source
        var InterestingControllerManagerMetrics = []string{
        	"garbage_collector_attempt_to_delete_queue_latency",
        	"garbage_collector_attempt_to_delete_work_duration",
        	"garbage_collector_attempt_to_orphan_queue_latency",
        	"garbage_collector_attempt_to_orphan_work_duration",
        	"garbage_collector_dirty_processing_latency_microseconds",
        	"garbage_collector_event_processing_latency_microseconds",
        	"garbage_collector_graph_changes_queue_latency",
        	"garbage_collector_graph_changes_work_duration",
        	"garbage_collector_orphan_processing_latency_microseconds",
        
        	"namespace_queue_latency",
        	"namespace_queue_latency_sum",
        	"namespace_queue_latency_count",
        	"namespace_retries",
        	"namespace_work_duration",
        	"namespace_work_duration_sum",
        	"namespace_work_duration_count",
        }
        View Source
        var InterestingKubeletMetrics = []string{
        	"kubelet_container_manager_latency_microseconds",
        	"kubelet_docker_errors",
        	"kubelet_docker_operations_duration_seconds",
        	"kubelet_generate_pod_status_latency_microseconds",
        	"kubelet_pod_start_duration_seconds",
        	"kubelet_pod_worker_duration_seconds",
        	"kubelet_pod_worker_start_duration_seconds",
        	"kubelet_sync_pods_latency_microseconds",
        }
        View Source
        var ItemNotSupported = errors.New("not supported")

          ItemNotSupported is the error that Create methods must return or wrap when they don't support the given item.

          View Source
          var ProvidersWithSSH = []string{"gce", "gke", "aws", "local"}

            ProvidersWithSSH are those providers where each node is accessible with SSH

            View Source
            var RunId = uuid.NewUUID()

              unique identifier of the e2e run

              View Source
              var (
              	// Common selinux labels
              	SELinuxLabel = &v1.SELinuxOptions{
              		Level: "s0:c0,c1"}
              )
              View Source
              var ServiceNodePortRange = utilnet.PortRange{Base: 30000, Size: 2768}

                This should match whatever the default/configured range is

                Functions

                func AddOrUpdateAvoidPodOnNode

                func AddOrUpdateAvoidPodOnNode(c clientset.Interface, nodeName string, avoidPods v1.AvoidPods)

                  AddOrUpdateAvoidPodOnNode adds avoidPods annotations to node, will override if it exists

                  func AddOrUpdateLabelOnNode

                  func AddOrUpdateLabelOnNode(c clientset.Interface, nodeName string, labelKey, labelValue string)

                  func AddOrUpdateLabelOnNodeAndReturnOldValue

                  func AddOrUpdateLabelOnNodeAndReturnOldValue(c clientset.Interface, nodeName string, labelKey, labelValue string) string

                  func AddOrUpdateTaintOnNode

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

                  func AfterReadingAllFlags

                  func AfterReadingAllFlags(t *TestContextType)

                    AfterReadingAllFlags makes changes to the context after all flags have been read.

                    func AllNodesReady

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

                      Checks whether all registered nodes are ready. TODO: we should change the AllNodesReady call in AfterEach to WaitForAllNodesHealthy, and figure out how to do it in a configurable way, as we can't expect all setups to run default test add-ons.

                      func ApiCallToPerfData

                      func ApiCallToPerfData(apicalls *APIResponsiveness) *perftype.PerfData

                        ApiCallToPerfData transforms APIResponsiveness to PerfData.

                        func AssertCleanup

                        func AssertCleanup(ns string, selectors ...string)

                          Asserts that cleanup of a namespace wrt selectors occurred.

                          func BindClusterRole

                          func BindClusterRole(c v1beta1rbac.ClusterRoleBindingsGetter, clusterRole, ns string, subjects ...rbacv1beta1.Subject)

                            BindClusterRole binds the cluster role at the cluster scope

                            func BindClusterRoleInNamespace

                            func BindClusterRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, clusterRole, ns string, subjects ...rbacv1beta1.Subject)

                              BindClusterRoleInNamespace binds the cluster role at the namespace scope

                              func BindRoleInNamespace

                              func BindRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, role, ns string, subjects ...rbacv1beta1.Subject)

                                BindRoleInNamespace binds the role at the namespace scope

                                func BlockNetwork

                                func BlockNetwork(from string, to string)

                                  The following helper functions can block/unblock network from source host to destination host by manipulating iptable rules. This function assumes it can ssh to the source host.

                                  Caution: Recommend to input IP instead of hostnames. Using hostnames will cause iptables to do a DNS lookup to resolve the name to an IP address, which will slow down the test and cause it to fail if DNS is absent or broken.

                                  Suggested usage pattern: func foo() {

                                  ...
                                  defer UnblockNetwork(from, to)
                                  BlockNetwork(from, to)
                                  ...
                                  

                                  }

                                  func CPUUsageToPerfData

                                  func CPUUsageToPerfData(usagePerNode NodesCPUSummary) *perftype.PerfData

                                    CPUUsageToPerfData transforms NodesCPUSummary to PerfData.

                                    func CPUUsageToPerfDataWithLabels

                                    func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[string]string) *perftype.PerfData

                                      CPUUsageToPerfDataWithLabels transforms NodesCPUSummary to PerfData with additional labels.

                                      func CheckAffinity

                                      func CheckAffinity(jig *ServiceTestJig, execPod *v1.Pod, targetIp string, targetPort int, shouldHold bool) bool

                                        CheckAffinity function tests whether the service affinity works as expected. If affinity is expected, the test will return true once affinityConfirmCount number of same response observed in a row. If affinity is not expected, the test will keep observe until different responses observed. The function will return false only in case of unexpected errors.

                                        func CheckConnectivityToHost

                                        func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, pingCmd PingCommand, timeout int) error

                                          CheckConnectivityToHost launches a pod to test connectivity to the specified host. An error will be returned if the host is not reachable from the pod.

                                          An empty nodeName will use the schedule to choose where the pod is executed.

                                          func CheckDeploymentRevisionAndImage

                                          func CheckDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName, revision, image string) error

                                            CheckDeploymentRevisionAndImage checks if the input deployment's and its new replica set's revision and image are as expected.

                                            func CheckForAllJobPodsRunning

                                            func CheckForAllJobPodsRunning(c clientset.Interface, ns, jobName string, parallelism int32) (bool, error)

                                              CheckForAllJobPodsRunning uses c to check in the Job named jobName in ns is running. If the returned error is not nil the returned bool is true if the Job is running.

                                              func CheckForControllerManagerHealthy

                                              func CheckForControllerManagerHealthy(duration time.Duration) error

                                                CheckForControllerManagerHealthy checks that the controller manager does not crash within "duration"

                                                func CheckInvariants

                                                func CheckInvariants(events []watch.Event, fns ...InvariantFunc) error

                                                func CheckMasterVersion

                                                func CheckMasterVersion(c clientset.Interface, want string) error

                                                func CheckNewRSAnnotations

                                                func CheckNewRSAnnotations(c clientset.Interface, ns, deploymentName string, expectedAnnotations map[string]string) error

                                                  CheckNewRSAnnotations check if the new RS's annotation is as expected

                                                  func CheckNodesReady

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

                                                    CheckNodesReady 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 Nodes excluding Master Node.

                                                    func CheckNodesVersions

                                                    func CheckNodesVersions(cs clientset.Interface, want string) error

                                                    func CheckPodsCondition

                                                    func CheckPodsCondition(c clientset.Interface, ns string, podNames []string, timeout time.Duration, condition podCondition, desc string) bool

                                                      CheckPodsCondition returns whether all pods whose names are listed in podNames in namespace ns are in the condition, using c and waiting at most timeout.

                                                      func CheckPodsRunningReady

                                                      func CheckPodsRunningReady(c clientset.Interface, ns string, podNames []string, timeout time.Duration) bool

                                                        CheckPodsRunningReady returns whether all pods whose names are listed in podNames in namespace ns are running and ready, using c and waiting at most timeout.

                                                        func CheckPodsRunningReadyOrSucceeded

                                                        func CheckPodsRunningReadyOrSucceeded(c clientset.Interface, ns string, podNames []string, timeout time.Duration) bool

                                                          CheckPodsRunningReadyOrSucceeded returns whether all pods whose names are listed in podNames in namespace ns are running and ready, or succeeded; use c and waiting at most timeout.

                                                          func CheckReachabilityFromPod

                                                          func CheckReachabilityFromPod(expectToBeReachable bool, timeout time.Duration, namespace, pod, target string)

                                                          func CheckTestingNSDeletedExcept

                                                          func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error

                                                            CheckTestingNSDeletedExcept checks whether all e2e based existing namespaces are in the Terminating state and waits until they are finally deleted. It ignores namespace skip.

                                                            func CleanUpVolumeServer

                                                            func CleanUpVolumeServer(f *Framework, serverPod *v1.Pod)

                                                              Wrapper of cleanup function for volume server without secret created by specific CreateStorageServer function.

                                                              func CleanUpVolumeServerWithSecret

                                                              func CleanUpVolumeServerWithSecret(f *Framework, serverPod *v1.Pod, secret *v1.Secret)

                                                                Wrapper of cleanup function for volume server with secret created by specific CreateStorageServer function.

                                                                func Cleanup

                                                                func Cleanup(filePath, ns string, selectors ...string)

                                                                  Stops everything from filePath from namespace ns and checks if everything matching selectors from the given namespace is correctly stopped.

                                                                  func CleanupServiceResources

                                                                  func CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string)

                                                                  func ClusterMonitoringModeIs

                                                                  func ClusterMonitoringModeIs(monitoringModes ...string) bool

                                                                  func CollectAddresses

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

                                                                  func ConformanceIt

                                                                  func ConformanceIt(text string, body interface{}, timeout ...float64) bool

                                                                    Wrapper function for ginkgo It. Adds "[Conformance]" tag and makes static analysis easier.

                                                                    func ContainerInitInvariant

                                                                    func ContainerInitInvariant(older, newer runtime.Object) error

                                                                    func CoreDump

                                                                    func CoreDump(dir string)

                                                                      CoreDump SSHs to the master and all nodes and dumps their logs into dir. It shells out to cluster/log-dump/log-dump.sh to accomplish this.

                                                                      func CreateClientPod

                                                                      func CreateClientPod(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (*v1.Pod, error)

                                                                        Define and create a pod with a mounted PV. Pod runs infinite loop until killed.

                                                                        func CreateDeployment

                                                                        func CreateDeployment(client clientset.Interface, replicas int32, podLabels map[string]string, nodeSelector map[string]string, namespace string, pvclaims []*v1.PersistentVolumeClaim, command string) (*apps.Deployment, error)

                                                                        func CreateEmptyFileOnPod

                                                                        func CreateEmptyFileOnPod(namespace string, podName string, filePath string) error

                                                                          create empty file at given path on the pod.

                                                                          func CreateExecPodOrFail

                                                                          func CreateExecPodOrFail(client clientset.Interface, ns, generateName string, tweak func(*v1.Pod)) string

                                                                            CreateExecPodOrFail creates a simple busybox pod in a sleep loop used as a vessel for kubectl exec commands. Returns the name of the created pod.

                                                                            func CreateGCEVolume

                                                                            func CreateGCEVolume() (*v1.PersistentVolumeSource, string)

                                                                            func CreateJob

                                                                            func CreateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error)

                                                                              CreateJob uses c to create job in namespace ns. If the returned error is nil, the returned Job is valid and has been created.

                                                                              func CreateManagedInstanceGroup

                                                                              func CreateManagedInstanceGroup(size int64, zone, template string) error

                                                                              func CreateNginxPod

                                                                              func CreateNginxPod(client clientset.Interface, namespace string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim) (*v1.Pod, error)

                                                                              func CreatePDWithRetry

                                                                              func CreatePDWithRetry() (string, error)

                                                                              func CreatePDWithRetryAndZone

                                                                              func CreatePDWithRetryAndZone(zone string) (string, error)

                                                                              func CreatePV

                                                                                create the PV resource. Fails test on error.

                                                                                func CreatePVC

                                                                                  create the PVC resource. Fails test on error.

                                                                                  func CreatePVCPV

                                                                                    Create a PVC followed by the PV based on the passed in nfs-server ip and namespace. If the "preBind" bool is true then pre-bind the PV to the PVC via the PV's ClaimRef. Return the pv and pvc to reflect the created objects. Note: in the pre-bind case the real PVC name, which is generated, is not

                                                                                    known until after the PVC is instantiated. This is why the pvc is created
                                                                                    before the pv.
                                                                                    

                                                                                    func CreatePVPVC

                                                                                      Create a PV followed by the PVC based on the passed in nfs-server ip and namespace. If the "preBind" bool is true then pre-bind the PVC to the PV via the PVC's VolumeName. Return the pv and pvc to reflect the created objects. Note: in the pre-bind case the real PV name, which is generated, is not

                                                                                      known until after the PV is instantiated. This is why the pv is created
                                                                                      before the pvc.
                                                                                      

                                                                                      func CreatePVSource

                                                                                      func CreatePVSource(zone string) (*v1.PersistentVolumeSource, error)

                                                                                      func CreatePVsPVCs

                                                                                      func CreatePVsPVCs(numpvs, numpvcs int, c clientset.Interface, ns string, pvConfig PersistentVolumeConfig, pvcConfig PersistentVolumeClaimConfig) (PVMap, PVCMap, error)

                                                                                        Create the desired number of PVs and PVCs and return them in separate maps. If the number of PVs != the number of PVCs then the min of those two counts is the number of PVs expected to bind. If a Create error occurs, the returned maps may contain pv and pvc entries for the resources that were successfully created. In other words, when the caller sees an error returned, it needs to decide what to do about entries in the maps. Note: when the test suite deletes the namespace orphaned pvcs and pods are deleted. However,

                                                                                        orphaned pvs are not deleted and will remain after the suite completes.
                                                                                        

                                                                                        func CreatePod

                                                                                        func CreatePod(client clientset.Interface, namespace string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) (*v1.Pod, error)

                                                                                          CreatePod with given claims based on node selector

                                                                                          func CreatePodOrFail

                                                                                          func CreatePodOrFail(c clientset.Interface, ns, name string, labels map[string]string, containerPorts []v1.ContainerPort)

                                                                                          func CreatePrivilegedPSPBinding

                                                                                          func CreatePrivilegedPSPBinding(f *Framework, namespace string)

                                                                                          func CreateSecPod

                                                                                          func CreateSecPod(client clientset.Interface, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string, hostIPC bool, hostPID bool, seLinuxLabel *v1.SELinuxOptions, fsGroup *int64, timeout time.Duration) (*v1.Pod, error)

                                                                                            create security pod with given claims

                                                                                            func CreateSecPodWithNodeName

                                                                                            func CreateSecPodWithNodeName(client clientset.Interface, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string, hostIPC bool, hostPID bool, seLinuxLabel *v1.SELinuxOptions, fsGroup *int64, nodeName string, timeout time.Duration) (*v1.Pod, error)

                                                                                              create security pod with given claims

                                                                                              func CreateServiceSpec

                                                                                              func CreateServiceSpec(serviceName, externalName string, isHeadless bool, selector map[string]string) *v1.Service

                                                                                              func CreateStatefulSetService

                                                                                              func CreateStatefulSetService(name string, labels map[string]string) *v1.Service

                                                                                                CreateStatefulSetService creates a Headless Service with Name name and Selector set to match labels.

                                                                                                func CreateStorageServer

                                                                                                func CreateStorageServer(cs clientset.Interface, config VolumeTestConfig) (pod *v1.Pod, ip string)

                                                                                                  Wrapper for StartVolumeServer(). A storage server config is passed in, and a pod pointer and ip address string are returned. Note: Expect() is called so no error is returned.

                                                                                                  func CreateTestingNS

                                                                                                  func CreateTestingNS(baseName string, c clientset.Interface, labels map[string]string) (*v1.Namespace, error)

                                                                                                    CreateTestingNS should be used by every test, note that we append a common prefix to the provided test name. Please see NewFramework instead of using this directly.

                                                                                                    func CreateUnschedulablePod

                                                                                                    func CreateUnschedulablePod(client clientset.Interface, namespace string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) (*v1.Pod, error)

                                                                                                      CreateUnschedulablePod with given claims based on node selector

                                                                                                      func CreateWaitAndDeletePod

                                                                                                      func CreateWaitAndDeletePod(f *Framework, c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (err error)

                                                                                                        Create the test pod, wait for (hopefully) success, and then delete the pod. Note: need named return value so that the err assignment in the defer sets the returned error.

                                                                                                        Has been shown to be necessary using Go 1.7.
                                                                                                        

                                                                                                        func DeleteAllStatefulSets

                                                                                                        func DeleteAllStatefulSets(c clientset.Interface, ns string)

                                                                                                          DeleteAllStatefulSets deletes all StatefulSet API Objects in Namespace ns.

                                                                                                          func DeleteJob

                                                                                                          func DeleteJob(c clientset.Interface, ns, name string) error

                                                                                                            DeleteJob uses c to delete the Job named name in namespace ns. If the returned error is nil, the Job has been deleted.

                                                                                                            func DeleteManagedInstanceGroup

                                                                                                            func DeleteManagedInstanceGroup(zone string) error

                                                                                                            func DeleteNamespaces

                                                                                                            func DeleteNamespaces(c clientset.Interface, deleteFilter, skipFilter []string) ([]string, error)

                                                                                                              DeleteNamespaces deletes all namespaces that match the given delete and skip filters. Filter is by simple strings.Contains; first skip filter, then delete filter. Returns the list of deleted namespaces or an error.

                                                                                                              func DeleteNodeOnCloudProvider

                                                                                                              func DeleteNodeOnCloudProvider(node *v1.Node) error

                                                                                                              func DeletePDWithRetry

                                                                                                              func DeletePDWithRetry(diskName string) error

                                                                                                              func DeletePVCandValidatePV

                                                                                                              func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim, pv *v1.PersistentVolume, expectPVPhase v1.PersistentVolumePhase) error

                                                                                                                Delete the PVC and wait for the PV to enter its expected phase. Validate that the PV has been reclaimed (assumption here about reclaimPolicy). Caller tells this func which phase value to expect for the pv bound to the to-be-deleted claim.

                                                                                                                func DeletePVCandValidatePVGroup

                                                                                                                func DeletePVCandValidatePVGroup(c clientset.Interface, ns string, pvols PVMap, claims PVCMap, expectPVPhase v1.PersistentVolumePhase) error

                                                                                                                  Wraps deletePVCandValidatePV() by calling the function in a loop over the PV map. Only bound PVs are deleted. Validates that the claim was deleted and the PV is in the expected Phase (Released, Available, Bound). Note: if there are more claims than pvs then some of the remaining claims may bind to just made

                                                                                                                  available pvs.
                                                                                                                  

                                                                                                                  func DeletePVSource

                                                                                                                  func DeletePVSource(pvSource *v1.PersistentVolumeSource) error

                                                                                                                  func DeletePersistentVolume

                                                                                                                  func DeletePersistentVolume(c clientset.Interface, pvName string) error

                                                                                                                    Delete the PV.

                                                                                                                    func DeletePersistentVolumeClaim

                                                                                                                    func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns string) error

                                                                                                                      Delete the Claim

                                                                                                                      func DeletePodOrFail

                                                                                                                      func DeletePodOrFail(c clientset.Interface, ns, name string)

                                                                                                                      func DeletePodWithWait

                                                                                                                      func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error

                                                                                                                        Deletes the passed-in pod and waits for the pod to be terminated. Resilient to the pod not existing.

                                                                                                                        func DeletePodWithWaitByName

                                                                                                                        func DeletePodWithWaitByName(f *Framework, c clientset.Interface, podName, podNamespace string) error

                                                                                                                          Deletes the named and namespaced pod and waits for the pod to be terminated. Resilient to the pod not existing.

                                                                                                                          func DeleteRCAndWaitForGC

                                                                                                                          func DeleteRCAndWaitForGC(c clientset.Interface, ns, name string) error

                                                                                                                            DeleteRCAndWaitForGC deletes only the Replication Controller and waits for GC to delete the pods.

                                                                                                                            func DeleteResourceAndWaitForGC

                                                                                                                            func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns, name string) error

                                                                                                                              DeleteResourceAndWaitForGC deletes only given resource and waits for GC to delete the pods.

                                                                                                                              func DescribeIng

                                                                                                                              func DescribeIng(ns string)

                                                                                                                              func DescribeItem

                                                                                                                              func DescribeItem(item interface{}) string

                                                                                                                                DescribeItem always returns a string that describes the item, usually by calling out to cache.MetaNamespaceKeyFunc which concatenates namespace (if set) and name. If that fails, the entire item gets converted to a string.

                                                                                                                                func DescribeSvc

                                                                                                                                func DescribeSvc(ns string)

                                                                                                                                func DsFromManifest

                                                                                                                                func DsFromManifest(url string) (*apps.DaemonSet, error)

                                                                                                                                  DsFromManifest reads a .json/yaml file and returns the daemonset in it.

                                                                                                                                  func DumpAllNamespaceInfo

                                                                                                                                  func DumpAllNamespaceInfo(c clientset.Interface, namespace string)

                                                                                                                                  func DumpDebugInfo

                                                                                                                                  func DumpDebugInfo(c clientset.Interface, ns string)

                                                                                                                                  func DumpEventsInNamespace

                                                                                                                                  func DumpEventsInNamespace(eventsLister EventsLister, namespace string)

                                                                                                                                  func DumpNodeDebugInfo

                                                                                                                                  func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, logFunc func(fmt string, args ...interface{}))

                                                                                                                                  func EnableAndDisableInternalLB

                                                                                                                                  func EnableAndDisableInternalLB() (enable func(svc *v1.Service), disable func(svc *v1.Service))

                                                                                                                                    EnableAndDisableInternalLB returns two functions for enabling and disabling the internal load balancer setting for the supported cloud providers (currently GCE/GKE and Azure) and empty functions for others.

                                                                                                                                    func EnsureLoadBalancerResourcesDeleted

                                                                                                                                    func EnsureLoadBalancerResourcesDeleted(ip, portRange string) error

                                                                                                                                      EnsureLoadBalancerResourcesDeleted ensures that cloud load balancer resources that were created are actually cleaned up. Currently only implemented for GCE/GKE.

                                                                                                                                      func EtcdUpgrade

                                                                                                                                      func EtcdUpgrade(target_storage, target_version string) error

                                                                                                                                      func ExpectNoError

                                                                                                                                      func ExpectNoError(err error, explain ...interface{})

                                                                                                                                      func ExpectNoErrorWithOffset

                                                                                                                                      func ExpectNoErrorWithOffset(offset int, err error, explain ...interface{})

                                                                                                                                        ExpectNoErrorWithOffset checks if "err" is set, and if so, fails assertion while logging the error at "offset" levels above its caller (for example, for call chain f -> g -> ExpectNoErrorWithOffset(1, ...) error would be logged for "f").

                                                                                                                                        func ExpectNoErrorWithRetries

                                                                                                                                        func ExpectNoErrorWithRetries(fn func() error, maxRetries int, explain ...interface{})

                                                                                                                                        func ExpectNodeHasLabel

                                                                                                                                        func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string, labelValue string)

                                                                                                                                        func ExpectNodeHasTaint

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

                                                                                                                                        func Failf

                                                                                                                                        func Failf(format string, args ...interface{})

                                                                                                                                        func FailfWithOffset

                                                                                                                                        func FailfWithOffset(offset int, format string, args ...interface{})

                                                                                                                                          FailfWithOffset calls "Fail" and logs the error at "offset" levels above its caller (for example, for call chain f -> g -> FailfWithOffset(1, ...) error would be logged for "f").

                                                                                                                                          func FilterNodes

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

                                                                                                                                            Filters nodes in NodeList in place, removing nodes that do not satisfy the given condition TODO: consider merging with pkg/client/cache.NodeLister

                                                                                                                                            func FormatRuntimeOperationErrorRate

                                                                                                                                            func FormatRuntimeOperationErrorRate(nodesResult map[string]NodeRuntimeOperationErrorRate) string

                                                                                                                                              FormatRuntimeOperationErrorRate formats the runtime operation error rate to string.

                                                                                                                                              func GatherCPUProfile

                                                                                                                                              func GatherCPUProfile(componentName string, profileBaseName string, wg *sync.WaitGroup)

                                                                                                                                              func GatherCPUProfileForSeconds

                                                                                                                                              func GatherCPUProfileForSeconds(componentName string, profileBaseName string, seconds int, wg *sync.WaitGroup)

                                                                                                                                              func GatherMemoryProfile

                                                                                                                                              func GatherMemoryProfile(componentName string, profileBaseName string, wg *sync.WaitGroup)

                                                                                                                                              func GenerateMasterRegexp

                                                                                                                                              func GenerateMasterRegexp(prefix string) string

                                                                                                                                              func GeneratePodSecurityContext

                                                                                                                                              func GeneratePodSecurityContext(fsGroup *int64, seLinuxOptions *v1.SELinuxOptions) *v1.PodSecurityContext

                                                                                                                                                GeneratePodSecurityContext generates the corresponding pod security context with the given inputs If the Node OS is windows, currently we will ignore the inputs and return nil. TODO: Will modify it after windows has its own security context

                                                                                                                                                func GenerateReadFileCmd

                                                                                                                                                func GenerateReadFileCmd(fullPath string) []string

                                                                                                                                                  GenerateReadFileCmd generates the corresponding command lines to read from a file with the given file path. Depending on the Node OS is Windows or linux, the command will use powershell or /bin/sh

                                                                                                                                                  func GenerateScriptCmd

                                                                                                                                                  func GenerateScriptCmd(command string) []string

                                                                                                                                                    GenerateScriptCmd generates the corresponding command lines to execute a command. Depending on the Node OS is Windows or linux, the command will use powershell or /bin/sh

                                                                                                                                                    func GenerateSecurityContext

                                                                                                                                                    func GenerateSecurityContext(privileged bool) *v1.SecurityContext

                                                                                                                                                      GenerateSecurityContext generates the corresponding container security context with the given inputs If the Node OS is windows, currently we will ignore the inputs and return nil. TODO: Will modify it after windows has its own security context

                                                                                                                                                      func GenerateWriteFileCmd

                                                                                                                                                      func GenerateWriteFileCmd(content, fullPath string) []string

                                                                                                                                                        GenerateWriteFileCmd generates the corresponding command lines to write a file with the given content and file path. Depending on the Node OS is Windows or linux, the command will use powershell or /bin/sh

                                                                                                                                                        func GenerateWriteandExecuteScriptFileCmd

                                                                                                                                                        func GenerateWriteandExecuteScriptFileCmd(content, fileName, filePath string) []string

                                                                                                                                                          GenerateWriteandExecuteScriptFileCmd generates the corresponding command lines to write a file with the given file path and also execute this file. Depending on the Node OS is Windows or linux, the command will use powershell or /bin/sh

                                                                                                                                                          func GetAllMasterAddresses

                                                                                                                                                          func GetAllMasterAddresses(c clientset.Interface) []string

                                                                                                                                                            GetAllMasterAddresses returns all IP addresses on which the kubelet can reach the master. It may return internal and external IPs, even if we expect for e.g. internal IPs to be used (issue #56787), so that we can be sure to block the master fully during tests.

                                                                                                                                                            func GetClusterZones

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

                                                                                                                                                            func GetFileModeRegex

                                                                                                                                                            func GetFileModeRegex(filePath string, mask *int32) string

                                                                                                                                                              GetFileModeRegex returns a file mode related regex which should be matched by the mounttest pods' output. If the given mask is nil, then the regex will contain the default OS file modes, which are 0644 for Linux and 0775 for Windows.

                                                                                                                                                              func GetGPUDevicePluginImage

                                                                                                                                                              func GetGPUDevicePluginImage() string

                                                                                                                                                              func GetGroupNodes

                                                                                                                                                              func GetGroupNodes(group string) ([]string, error)

                                                                                                                                                              func GetHostExternalAddress

                                                                                                                                                              func GetHostExternalAddress(client clientset.Interface, p *v1.Pod) (externalAddress string, err error)

                                                                                                                                                                GetHostExternalAddress gets the node for a pod and returns the first External address. Returns an error if the node the pod is on doesn't have an External address.

                                                                                                                                                                func GetIngressPoint

                                                                                                                                                                func GetIngressPoint(ing *v1.LoadBalancerIngress) string

                                                                                                                                                                func GetJob

                                                                                                                                                                func GetJob(c clientset.Interface, ns, name string) (*batch.Job, error)

                                                                                                                                                                  GetJob uses c to get the Job in namespace ns named name. If the returned error is nil, the returned Job is valid.

                                                                                                                                                                  func GetJobPods

                                                                                                                                                                  func GetJobPods(c clientset.Interface, ns, jobName string) (*v1.PodList, error)

                                                                                                                                                                    GetJobPods returns a list of Pods belonging to a Job.

                                                                                                                                                                    func GetKubeletHeapStats

                                                                                                                                                                    func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error)

                                                                                                                                                                    func GetKubeletPods

                                                                                                                                                                    func GetKubeletPods(c clientset.Interface, node string) (*v1.PodList, error)

                                                                                                                                                                      GetKubeletPods retrieves the list of pods on the kubelet

                                                                                                                                                                      func GetKubeletRunningPods

                                                                                                                                                                      func GetKubeletRunningPods(c clientset.Interface, node string) (*v1.PodList, error)

                                                                                                                                                                        GetKubeletRunningPods retrieves the list of running pods on the kubelet. The pods includes necessary information (e.g., UID, name, namespace for pods/containers), but do not contain the full spec.

                                                                                                                                                                        func GetKubemarkMasterComponentsResourceUsage

                                                                                                                                                                        func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsage

                                                                                                                                                                          TODO: figure out how to move this to kubemark directory (need to factor test SSH out of e2e framework)

                                                                                                                                                                          func GetLogToFileFunc

                                                                                                                                                                          func GetLogToFileFunc(file *os.File) func(format string, args ...interface{})

                                                                                                                                                                            GetLogToFileFunc is a convenience function that returns a function that have the same interface as Logf, but writes to a specified file.

                                                                                                                                                                            func GetManagedInstanceGroupTemplateName

                                                                                                                                                                            func GetManagedInstanceGroupTemplateName(zone string) (string, error)

                                                                                                                                                                            func GetMasterAndWorkerNodesOrDie

                                                                                                                                                                            func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeList)

                                                                                                                                                                              GetMasterAndWorkerNodesOrDie will return a list masters and schedulable worker nodes

                                                                                                                                                                              func GetMasterHost

                                                                                                                                                                              func GetMasterHost() string

                                                                                                                                                                              func GetNodeAddresses

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

                                                                                                                                                                              func GetNodeExternalIP

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

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

                                                                                                                                                                                func GetNodeInternalIP

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

                                                                                                                                                                                  GetNodeInternalIP returns node internal IP

                                                                                                                                                                                  func GetNodePortURL

                                                                                                                                                                                  func GetNodePortURL(client clientset.Interface, ns, name string, svcPort int) (string, error)

                                                                                                                                                                                    GetNodePortURL returns the url to a nodeport Service.

                                                                                                                                                                                    func GetNodePublicIps

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

                                                                                                                                                                                    func GetNodeTTLAnnotationValue

                                                                                                                                                                                    func GetNodeTTLAnnotationValue(c clientset.Interface) (time.Duration, error)

                                                                                                                                                                                    func GetPodLogs

                                                                                                                                                                                    func GetPodLogs(c clientset.Interface, namespace, podName, containerName string) (string, error)

                                                                                                                                                                                      TODO(random-liu): Change this to be a member function of the framework.

                                                                                                                                                                                      func GetPodSecretUpdateTimeout

                                                                                                                                                                                      func GetPodSecretUpdateTimeout(c clientset.Interface) time.Duration

                                                                                                                                                                                      func GetPodsForDeployment

                                                                                                                                                                                      func GetPodsForDeployment(client clientset.Interface, deployment *apps.Deployment) (*v1.PodList, error)

                                                                                                                                                                                        GetPodsForDeployment gets pods for the given deployment

                                                                                                                                                                                        func GetPodsInNamespace

                                                                                                                                                                                        func GetPodsInNamespace(c clientset.Interface, ns string, ignoreLabels map[string]string) ([]*v1.Pod, error)

                                                                                                                                                                                        func GetPodsScheduled

                                                                                                                                                                                        func GetPodsScheduled(masterNodes sets.String, pods *v1.PodList) (scheduledPods, notScheduledPods []v1.Pod)

                                                                                                                                                                                          GetPodsScheduled returns a number of currently scheduled and not scheduled Pods.

                                                                                                                                                                                          func GetProviders

                                                                                                                                                                                          func GetProviders() []string

                                                                                                                                                                                            GetProviders returns the names of all currently registered providers.

                                                                                                                                                                                            func GetReadyNodesIncludingTaintedOrDie

                                                                                                                                                                                            func GetReadyNodesIncludingTaintedOrDie(c clientset.Interface) (nodes *v1.NodeList)

                                                                                                                                                                                              GetReadyNodesIncludingTaintedOrDie 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 GetReadySchedulableNodesOrDie

                                                                                                                                                                                              func GetReadySchedulableNodesOrDie(c clientset.Interface) (nodes *v1.NodeList)

                                                                                                                                                                                                GetReadySchedulableNodesOrDie 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.

                                                                                                                                                                                                func GetServerArchitecture

                                                                                                                                                                                                func GetServerArchitecture(c clientset.Interface) string

                                                                                                                                                                                                  GetServerArchitecture fetches the architecture of the cluster's apiserver.

                                                                                                                                                                                                  func GetServiceLoadBalancerCreationTimeout

                                                                                                                                                                                                  func GetServiceLoadBalancerCreationTimeout(cs clientset.Interface) time.Duration

                                                                                                                                                                                                  func GetServicesProxyRequest

                                                                                                                                                                                                  func GetServicesProxyRequest(c clientset.Interface, request *restclient.Request) (*restclient.Request, error)

                                                                                                                                                                                                  func GetSigner

                                                                                                                                                                                                  func GetSigner(provider string) (ssh.Signer, error)

                                                                                                                                                                                                    GetSigner returns an ssh.Signer for the provider ("gce", etc.) that can be used to SSH to their nodes.

                                                                                                                                                                                                    func GetStatsSummary

                                                                                                                                                                                                    func GetStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, error)

                                                                                                                                                                                                      GetStatsSummary contacts kubelet for the container information.

                                                                                                                                                                                                      func GetTestImage

                                                                                                                                                                                                      func GetTestImage(image string) string

                                                                                                                                                                                                        GetTestImage returns the image name with the given input If the Node OS is windows, currently we return Nettest image for Windows node due to the issue of #https://github.com/kubernetes-sigs/windows-testing/pull/35.

                                                                                                                                                                                                        func GroupSize

                                                                                                                                                                                                        func GroupSize(group string) (int, error)

                                                                                                                                                                                                        func HandleFlags

                                                                                                                                                                                                        func HandleFlags()

                                                                                                                                                                                                          HandleFlags sets up all flags and parses the command line.

                                                                                                                                                                                                          func IngressUpgrade

                                                                                                                                                                                                          func IngressUpgrade(isUpgrade bool) error

                                                                                                                                                                                                          func InjectHtml

                                                                                                                                                                                                          func InjectHtml(client clientset.Interface, config VolumeTestConfig, fsGroup *int64, volume v1.VolumeSource, content string)

                                                                                                                                                                                                            InjectHtml insert index.html with given content into given volume. It does so by starting and auxiliary pod which writes the file there. The volume must be writable.

                                                                                                                                                                                                            func IsNodeConditionSetAsExpected

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

                                                                                                                                                                                                            func IsNodeConditionSetAsExpectedSilent

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

                                                                                                                                                                                                            func IsNodeConditionUnset

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

                                                                                                                                                                                                            func IsPodSecurityPolicyEnabled

                                                                                                                                                                                                            func IsPodSecurityPolicyEnabled(f *Framework) bool

                                                                                                                                                                                                            func IsRBACEnabled

                                                                                                                                                                                                            func IsRBACEnabled(f *Framework) bool

                                                                                                                                                                                                            func IssueSSHCommand

                                                                                                                                                                                                            func IssueSSHCommand(cmd, provider string, node *v1.Node) error

                                                                                                                                                                                                            func JobFinishTime

                                                                                                                                                                                                            func JobFinishTime(finishedJob *batch.Job) metav1.Time

                                                                                                                                                                                                            func KubeDescribe

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

                                                                                                                                                                                                              Wrapper function for ginkgo describe. Adds namespacing. TODO: Support type safe tagging as well https://github.com/kubernetes/kubernetes/pull/22401.

                                                                                                                                                                                                              func KubectlCmd

                                                                                                                                                                                                              func KubectlCmd(args ...string) *exec.Cmd

                                                                                                                                                                                                                KubectlCmd runs the kubectl executable through the wrapper script.

                                                                                                                                                                                                                func KubectlVersion

                                                                                                                                                                                                                func KubectlVersion() (*utilversion.Version, error)

                                                                                                                                                                                                                  KubectlVersion gets the version of kubectl that's currently being used (see --kubectl-path in e2e.go to use an alternate kubectl).

                                                                                                                                                                                                                  func KubectlVersionGTE

                                                                                                                                                                                                                  func KubectlVersionGTE(v *utilversion.Version) (bool, error)

                                                                                                                                                                                                                    KubectlVersionGTE returns true if the kubectl version is greater than or equal to v.

                                                                                                                                                                                                                    func LaunchHostExecPod

                                                                                                                                                                                                                    func LaunchHostExecPod(client clientset.Interface, ns, name string) *v1.Pod

                                                                                                                                                                                                                      LaunchHostExecPod launches a hostexec pod in the given namespace and waits until it's Running

                                                                                                                                                                                                                      func LaunchWebserverPod

                                                                                                                                                                                                                      func LaunchWebserverPod(f *Framework, podName, nodeName string) (ip string)

                                                                                                                                                                                                                        LaunchWebserverPod launches a pod serving http on port 8080 to act as the target for networking connectivity checks. The ip address of the created pod will be returned if the pod is launched successfully.

                                                                                                                                                                                                                        func ListNamespaceEvents

                                                                                                                                                                                                                        func ListNamespaceEvents(c clientset.Interface, ns string) error

                                                                                                                                                                                                                        func LoadClientset

                                                                                                                                                                                                                        func LoadClientset() (*clientset.Clientset, error)

                                                                                                                                                                                                                        func LoadConfig

                                                                                                                                                                                                                        func LoadConfig() (*restclient.Config, error)

                                                                                                                                                                                                                        func LoadInternalClientset

                                                                                                                                                                                                                        func LoadInternalClientset() (*internalclientset.Clientset, error)

                                                                                                                                                                                                                        func LogClusterImageSources

                                                                                                                                                                                                                        func LogClusterImageSources()

                                                                                                                                                                                                                        func LogContainersInPodsWithLabels

                                                                                                                                                                                                                        func LogContainersInPodsWithLabels(c clientset.Interface, ns string, match map[string]string, containerSubstr string, logFunc func(ftm string, args ...interface{}))

                                                                                                                                                                                                                        func LogFailedContainers

                                                                                                                                                                                                                        func LogFailedContainers(c clientset.Interface, ns string, logFunc func(ftm string, args ...interface{}))

                                                                                                                                                                                                                        func LogPodsWithLabels

                                                                                                                                                                                                                        func LogPodsWithLabels(c clientset.Interface, ns string, match map[string]string, logFunc func(ftm string, args ...interface{}))

                                                                                                                                                                                                                        func LogSSHResult

                                                                                                                                                                                                                        func LogSSHResult(result SSHResult)

                                                                                                                                                                                                                        func LogSuspiciousLatency

                                                                                                                                                                                                                        func LogSuspiciousLatency(latencyData []PodLatencyData, latencyDataLag []PodLatencyData, nodeCount int, c clientset.Interface)

                                                                                                                                                                                                                          LogSuspiciousLatency logs metrics/docker errors from all nodes that had slow startup times If latencyDataLag is nil then it will be populated from latencyData

                                                                                                                                                                                                                          func Logf

                                                                                                                                                                                                                          func Logf(format string, args ...interface{})

                                                                                                                                                                                                                          func LookForString

                                                                                                                                                                                                                          func LookForString(expectedString string, timeout time.Duration, fn func() string) (result string, err error)

                                                                                                                                                                                                                            Looks for the given string in the output of fn, repeatedly calling fn until the timeout is reached or the string is found. Returns last log and possibly error if the string was not found.

                                                                                                                                                                                                                            func LookForStringInFile

                                                                                                                                                                                                                            func LookForStringInFile(ns, podName, container, file, expectedString string, timeout time.Duration) (result string, err error)

                                                                                                                                                                                                                              Looks for the given string in a file in a specific pod container

                                                                                                                                                                                                                              func LookForStringInLog

                                                                                                                                                                                                                              func LookForStringInLog(ns, podName, container, expectedString string, timeout time.Duration) (result string, err error)

                                                                                                                                                                                                                                Looks for the given string in the log of a specific pod container

                                                                                                                                                                                                                                func LookForStringInPodExec

                                                                                                                                                                                                                                func LookForStringInPodExec(ns, podName string, command []string, expectedString string, timeout time.Duration) (result string, err error)

                                                                                                                                                                                                                                  Looks for the given string in the output of a command executed in a specific pod container

                                                                                                                                                                                                                                  func MakeDeployment

                                                                                                                                                                                                                                  func MakeDeployment(replicas int32, podLabels map[string]string, nodeSelector map[string]string, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) *apps.Deployment

                                                                                                                                                                                                                                    MakeDeployment creates a deployment definition based on the namespace. The deployment references the PVC's name. A slice of BASH commands can be supplied as args to be run by the pod

                                                                                                                                                                                                                                    func MakeNginxPod

                                                                                                                                                                                                                                    func MakeNginxPod(ns string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim) *v1.Pod

                                                                                                                                                                                                                                      Returns a pod definition based on the namespace using nginx image

                                                                                                                                                                                                                                      func MakePersistentVolume

                                                                                                                                                                                                                                      func MakePersistentVolume(pvConfig PersistentVolumeConfig) *v1.PersistentVolume

                                                                                                                                                                                                                                        Returns a PV definition based on the nfs server IP. If the PVC is not nil then the PV is defined with a ClaimRef which includes the PVC's namespace. If the PVC is nil then the PV is not defined with a ClaimRef. If no reclaimPolicy is assigned, assumes "Retain". Specs are expected to match the test's PVC. Note: the passed-in claim does not have a name until it is created and thus the PV's

                                                                                                                                                                                                                                        ClaimRef cannot be completely filled-in in this func. Therefore, the ClaimRef's name
                                                                                                                                                                                                                                        is added later in CreatePVCPV.
                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                        func MakePersistentVolumeClaim

                                                                                                                                                                                                                                        func MakePersistentVolumeClaim(cfg PersistentVolumeClaimConfig, ns string) *v1.PersistentVolumeClaim

                                                                                                                                                                                                                                          Returns a PVC definition based on the namespace. Note: if this PVC is intended to be pre-bound to a PV, whose name is not

                                                                                                                                                                                                                                          known until the PV is instantiated, then the func CreatePVPVC will add
                                                                                                                                                                                                                                          pvc.Spec.VolumeName to this claim.
                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                          func MakePod

                                                                                                                                                                                                                                          func MakePod(ns string, nodeSelector map[string]string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string) *v1.Pod

                                                                                                                                                                                                                                            Returns a pod definition based on the namespace. The pod references the PVC's name. A slice of BASH commands can be supplied as args to be run by the pod

                                                                                                                                                                                                                                            func MakeSecPod

                                                                                                                                                                                                                                            func MakeSecPod(ns string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string, hostIPC bool, hostPID bool, seLinuxLabel *v1.SELinuxOptions, fsGroup *int64) *v1.Pod

                                                                                                                                                                                                                                              Returns a pod definition based on the namespace. The pod references the PVC's name. A slice of BASH commands can be supplied as args to be run by the pod. SELinux testing requires to pass HostIPC and HostPID as booleansi arguments.

                                                                                                                                                                                                                                              func MakeWritePod

                                                                                                                                                                                                                                              func MakeWritePod(ns string, pvc *v1.PersistentVolumeClaim) *v1.Pod

                                                                                                                                                                                                                                                Returns a pod definition based on the namespace. The pod references the PVC's name.

                                                                                                                                                                                                                                                func MasterOSDistroIs

                                                                                                                                                                                                                                                func MasterOSDistroIs(supportedMasterOsDistros ...string) bool

                                                                                                                                                                                                                                                func MasterUpgrade

                                                                                                                                                                                                                                                func MasterUpgrade(v string) error

                                                                                                                                                                                                                                                func MasterUpgradeGCEWithKubeProxyDaemonSet

                                                                                                                                                                                                                                                func MasterUpgradeGCEWithKubeProxyDaemonSet(v string, enableKubeProxyDaemonSet bool) error

                                                                                                                                                                                                                                                  TODO(mrhohn): Remove this function when kube-proxy is run as a DaemonSet by default.

                                                                                                                                                                                                                                                  func MigTemplate

                                                                                                                                                                                                                                                  func MigTemplate() (string, error)

                                                                                                                                                                                                                                                    MigTemplate (GCE-only) returns the name of the MIG template that the nodes of the cluster use.

                                                                                                                                                                                                                                                    func NVIDIADevicePlugin

                                                                                                                                                                                                                                                    func NVIDIADevicePlugin() *v1.Pod

                                                                                                                                                                                                                                                      NVIDIADevicePlugin returns the official Google Device Plugin pod for NVIDIA GPU in GKE

                                                                                                                                                                                                                                                      func NewDeployment

                                                                                                                                                                                                                                                      func NewDeployment(deploymentName string, replicas int32, podLabels map[string]string, imageName, image string, strategyType apps.DeploymentStrategyType) *apps.Deployment

                                                                                                                                                                                                                                                      func NewE2ETestNodePreparer

                                                                                                                                                                                                                                                      func NewE2ETestNodePreparer(client clientset.Interface, countToStrategy []testutils.CountToStrategy) testutils.TestNodePreparer

                                                                                                                                                                                                                                                      func NewExecPodSpec

                                                                                                                                                                                                                                                      func NewExecPodSpec(ns, name string, hostNetwork bool) *v1.Pod

                                                                                                                                                                                                                                                        NewExecPodSpec returns the pod spec of hostexec pod

                                                                                                                                                                                                                                                        func NewKubectlCommand

                                                                                                                                                                                                                                                        func NewKubectlCommand(args ...string) *kubectlBuilder

                                                                                                                                                                                                                                                        func NewReplicaSet

                                                                                                                                                                                                                                                        func NewReplicaSet(name, namespace string, replicas int32, podLabels map[string]string, imageName, image string) *apps.ReplicaSet

                                                                                                                                                                                                                                                        func NewStatefulSet

                                                                                                                                                                                                                                                        func NewStatefulSet(name, ns, governingSvcName string, replicas int32, statefulPodMounts []v1.VolumeMount, podMounts []v1.VolumeMount, labels map[string]string) *apps.StatefulSet

                                                                                                                                                                                                                                                          NewStatefulSet creates a new NGINX StatefulSet for testing. The StatefulSet is named name, is in namespace ns, statefulPodsMounts are the mounts that will be backed by PVs. podsMounts are the mounts that are mounted directly to the Pod. labels are the labels that will be usd for the StatefulSet selector.

                                                                                                                                                                                                                                                          func NewStatefulSetPVC

                                                                                                                                                                                                                                                          func NewStatefulSetPVC(name string) v1.PersistentVolumeClaim

                                                                                                                                                                                                                                                            NewStatefulSetPVC returns a PersistentVolumeClaim named name, for testing StatefulSets.

                                                                                                                                                                                                                                                            func NewStatefulSetScale

                                                                                                                                                                                                                                                            func NewStatefulSetScale(ss *apps.StatefulSet) *appsV1beta2.Scale

                                                                                                                                                                                                                                                              NewStatefulSetScale creates a new StatefulSet scale subresource and returns it

                                                                                                                                                                                                                                                              func NewTestJob

                                                                                                                                                                                                                                                              func NewTestJob(behavior, name string, rPol v1.RestartPolicy, parallelism, completions int32, activeDeadlineSeconds *int64, backoffLimit int32) *batch.Job

                                                                                                                                                                                                                                                                NewTestJob returns a Job which does one of several testing behaviors. notTerminate starts a Job that will run effectively forever. fail starts a Job that will fail immediately. succeed starts a Job that will succeed immediately. randomlySucceedOrFail starts a Job that will succeed or fail randomly. failOnce fails the Job the first time it is run and succeeds subsequently. name is the Name of the Job. RestartPolicy indicates the restart policy of the containers in which the Pod is running. Parallelism is the Job's parallelism, and completions is the Job's required number of completions.

                                                                                                                                                                                                                                                                func NodeAddresses

                                                                                                                                                                                                                                                                func NodeAddresses(nodelist *v1.NodeList, addrType v1.NodeAddressType) []string

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

                                                                                                                                                                                                                                                                  func NodeHasTaint

                                                                                                                                                                                                                                                                  func NodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) (bool, error)

                                                                                                                                                                                                                                                                  func NodeOSDistroIs

                                                                                                                                                                                                                                                                  func NodeOSDistroIs(supportedNodeOsDistros ...string) bool

                                                                                                                                                                                                                                                                  func NodeProxyRequest

                                                                                                                                                                                                                                                                  func NodeProxyRequest(c clientset.Interface, node, endpoint string, port int) (restclient.Result, error)

                                                                                                                                                                                                                                                                    NodeProxyRequest performs a get on a node proxy endpoint given the nodename and rest client.

                                                                                                                                                                                                                                                                    func NodeSSHHosts

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

                                                                                                                                                                                                                                                                      NodeSSHHosts returns SSH-able host names for all schedulable nodes - this excludes master node. If it can't find any external IPs, it falls back to looking for internal IPs. If it can't find an internal IP for every node it returns an error, though it still returns all hosts that it found in that case.

                                                                                                                                                                                                                                                                      func NodeUpgrade

                                                                                                                                                                                                                                                                      func NodeUpgrade(f *Framework, v string, img string) error

                                                                                                                                                                                                                                                                      func NodeUpgradeGCEWithKubeProxyDaemonSet

                                                                                                                                                                                                                                                                      func NodeUpgradeGCEWithKubeProxyDaemonSet(f *Framework, v string, img string, enableKubeProxyDaemonSet bool) error

                                                                                                                                                                                                                                                                        TODO(mrhohn): Remove this function when kube-proxy is run as a DaemonSet by default.

                                                                                                                                                                                                                                                                        func NumberOfNVIDIAGPUs

                                                                                                                                                                                                                                                                        func NumberOfNVIDIAGPUs(node *v1.Node) int64

                                                                                                                                                                                                                                                                          TODO make this generic and not linked to COS only NumberOfGPUs returs the number of GPUs advertised by a node This is based on the Device Plugin system and expected to run on a COS based node After the NVIDIA drivers were installed

                                                                                                                                                                                                                                                                          func NumberOfReadyNodes

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

                                                                                                                                                                                                                                                                            NumberOfReadyNodes returns number of ready Nodes excluding Master Node.

                                                                                                                                                                                                                                                                            func NumberOfRegisteredNodes

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

                                                                                                                                                                                                                                                                              NumberOfRegisteredNodes returns number of registered Nodes excluding Master Node.

                                                                                                                                                                                                                                                                              func OpenWebSocketForURL

                                                                                                                                                                                                                                                                              func OpenWebSocketForURL(url *url.URL, config *restclient.Config, protocols []string) (*websocket.Conn, error)

                                                                                                                                                                                                                                                                                OpenWebSocketForURL constructs a websocket connection to the provided URL, using the client config, with the specified protocols.

                                                                                                                                                                                                                                                                                func PVPVCCleanup

                                                                                                                                                                                                                                                                                func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc *v1.PersistentVolumeClaim) []error

                                                                                                                                                                                                                                                                                  Clean up a pv and pvc in a single pv/pvc test case. Note: delete errors are appended to []error so that we can attempt to delete both the pvc and pv.

                                                                                                                                                                                                                                                                                  func PVPVCMapCleanup

                                                                                                                                                                                                                                                                                  func PVPVCMapCleanup(c clientset.Interface, ns string, pvols PVMap, claims PVCMap) []error

                                                                                                                                                                                                                                                                                    Clean up pvs and pvcs in multi-pv-pvc test cases. Entries found in the pv and claim maps are deleted as long as the Delete api call succeeds. Note: delete errors are appended to []error so that as many pvcs and pvs as possible are deleted.

                                                                                                                                                                                                                                                                                    func ParseKVLines

                                                                                                                                                                                                                                                                                    func ParseKVLines(output, key string) string

                                                                                                                                                                                                                                                                                      ParseKVLines parses output that looks like lines containing "<key>: <val>" and returns <val> if <key> is found. Otherwise, it returns the empty string.

                                                                                                                                                                                                                                                                                      func PickNodeIP

                                                                                                                                                                                                                                                                                      func PickNodeIP(c clientset.Interface) string

                                                                                                                                                                                                                                                                                      func PodProxyResponseChecker

                                                                                                                                                                                                                                                                                      func PodProxyResponseChecker(c clientset.Interface, ns string, label labels.Selector, controllerName string, respondName bool, pods *v1.PodList) podProxyResponseChecker

                                                                                                                                                                                                                                                                                      func PodStartupLatencyToPerfData

                                                                                                                                                                                                                                                                                      func PodStartupLatencyToPerfData(latency *PodStartupLatency) *perftype.PerfData

                                                                                                                                                                                                                                                                                        PodStartupLatencyToPerfData transforms PodStartupLatency to PerfData.

                                                                                                                                                                                                                                                                                        func PodsCreated

                                                                                                                                                                                                                                                                                        func PodsCreated(c clientset.Interface, ns, name string, replicas int32) (*v1.PodList, error)

                                                                                                                                                                                                                                                                                        func PodsCreatedByLabel

                                                                                                                                                                                                                                                                                        func PodsCreatedByLabel(c clientset.Interface, ns, name string, replicas int32, label labels.Selector) (*v1.PodList, error)

                                                                                                                                                                                                                                                                                        func PodsResponding

                                                                                                                                                                                                                                                                                        func PodsResponding(c clientset.Interface, ns, name string, wantName bool, pods *v1.PodList) error

                                                                                                                                                                                                                                                                                        func PollURL

                                                                                                                                                                                                                                                                                        func PollURL(route, host string, timeout time.Duration, interval time.Duration, httpClient *http.Client, expectUnreachable bool) error

                                                                                                                                                                                                                                                                                          PollURL polls till the url responds with a healthy http code. If expectUnreachable is true, it breaks on first non-healthy http code instead.

                                                                                                                                                                                                                                                                                          func PrettyPrint

                                                                                                                                                                                                                                                                                          func PrettyPrint(item interface{}) string

                                                                                                                                                                                                                                                                                            PrettyPrint returns a human-readable representation of an item.

                                                                                                                                                                                                                                                                                            func PrettyPrintJSON

                                                                                                                                                                                                                                                                                            func PrettyPrintJSON(metrics interface{}) string

                                                                                                                                                                                                                                                                                            func PrintAllKubeletPods

                                                                                                                                                                                                                                                                                            func PrintAllKubeletPods(c clientset.Interface, nodeName string)

                                                                                                                                                                                                                                                                                            func PrintLatencies

                                                                                                                                                                                                                                                                                            func PrintLatencies(latencies []PodLatencyData, header string)

                                                                                                                                                                                                                                                                                            func PrintPerfData

                                                                                                                                                                                                                                                                                            func PrintPerfData(p *perftype.PerfData)

                                                                                                                                                                                                                                                                                              PrintPerfData prints the perfdata in json format with PerfResultTag prefix. If an error occurs, nothing will be printed.

                                                                                                                                                                                                                                                                                              func PrintSummaries

                                                                                                                                                                                                                                                                                              func PrintSummaries(summaries []TestDataSummary, testBaseName string)

                                                                                                                                                                                                                                                                                              func PrivilegedPSP

                                                                                                                                                                                                                                                                                              func PrivilegedPSP(name string) *policy.PodSecurityPolicy

                                                                                                                                                                                                                                                                                                Creates a PodSecurityPolicy that allows everything.

                                                                                                                                                                                                                                                                                                func ProviderIs

                                                                                                                                                                                                                                                                                                func ProviderIs(providers ...string) bool

                                                                                                                                                                                                                                                                                                func ProxyMode

                                                                                                                                                                                                                                                                                                func ProxyMode(f *Framework) (string, error)

                                                                                                                                                                                                                                                                                                func RandomSuffix

                                                                                                                                                                                                                                                                                                func RandomSuffix() string

                                                                                                                                                                                                                                                                                                  randomSuffix provides a random string to append to pods,services,rcs. TODO: Allow service names to have the same form as names

                                                                                                                                                                                                                                                                                                  for pods and replication controllers so we don't
                                                                                                                                                                                                                                                                                                  need to use such a function and can instead
                                                                                                                                                                                                                                                                                                  use the UUID utility function.
                                                                                                                                                                                                                                                                                                  

                                                                                                                                                                                                                                                                                                  func RcByNameContainer

                                                                                                                                                                                                                                                                                                  func RcByNameContainer(name string, replicas int32, image string, labels map[string]string, c v1.Container,
                                                                                                                                                                                                                                                                                                  	gracePeriod *int64) *v1.ReplicationController

                                                                                                                                                                                                                                                                                                    RcByNameContainer returns a ReplicationController with specified name and container

                                                                                                                                                                                                                                                                                                    func RcByNamePort

                                                                                                                                                                                                                                                                                                    func RcByNamePort(name string, replicas int32, image string, port int, protocol v1.Protocol,
                                                                                                                                                                                                                                                                                                    	labels map[string]string, gracePeriod *int64) *v1.ReplicationController

                                                                                                                                                                                                                                                                                                      RcByNamePort returns a ReplicationController with specified name and port

                                                                                                                                                                                                                                                                                                      func RealVersion

                                                                                                                                                                                                                                                                                                      func RealVersion(s string) (string, error)

                                                                                                                                                                                                                                                                                                        RealVersion turns a version constants into a version string deployable on GKE. See hack/get-build.sh for more information.

                                                                                                                                                                                                                                                                                                        func RegisterClusterFlags

                                                                                                                                                                                                                                                                                                        func RegisterClusterFlags()

                                                                                                                                                                                                                                                                                                          Register flags specific to the cluster e2e test suite.

                                                                                                                                                                                                                                                                                                          func RegisterCommonFlags

                                                                                                                                                                                                                                                                                                          func RegisterCommonFlags()

                                                                                                                                                                                                                                                                                                            Register flags common to all e2e test suites.

                                                                                                                                                                                                                                                                                                            func RegisterNodeFlags

                                                                                                                                                                                                                                                                                                            func RegisterNodeFlags()

                                                                                                                                                                                                                                                                                                              Register flags specific to the node e2e test suite.

                                                                                                                                                                                                                                                                                                              func RegisterProvider

                                                                                                                                                                                                                                                                                                              func RegisterProvider(name string, factory Factory)

                                                                                                                                                                                                                                                                                                                RegisterProvider is expected to be called during application init, typically by an init function in a provider package.

                                                                                                                                                                                                                                                                                                                func RemoveAvoidPodsOffNode

                                                                                                                                                                                                                                                                                                                func RemoveAvoidPodsOffNode(c clientset.Interface, nodeName string)

                                                                                                                                                                                                                                                                                                                  RemoveAnnotationOffNode removes AvoidPods annotations from the node. It does not fail if no such annotation exists.

                                                                                                                                                                                                                                                                                                                  func RemoveCleanupAction

                                                                                                                                                                                                                                                                                                                  func RemoveCleanupAction(p CleanupActionHandle)

                                                                                                                                                                                                                                                                                                                    RemoveCleanupAction removes a function that was installed by AddCleanupAction.

                                                                                                                                                                                                                                                                                                                    func RemoveLabelOffNode

                                                                                                                                                                                                                                                                                                                    func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKey string)

                                                                                                                                                                                                                                                                                                                      RemoveLabelOffNode is for cleaning up labels temporarily added to node, won't fail if target label doesn't exist or has been removed.

                                                                                                                                                                                                                                                                                                                      func RemoveTaintOffNode

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

                                                                                                                                                                                                                                                                                                                      func ResetMetrics

                                                                                                                                                                                                                                                                                                                      func ResetMetrics(c clientset.Interface) error

                                                                                                                                                                                                                                                                                                                        Resets latency metrics in apiserver.

                                                                                                                                                                                                                                                                                                                        func ResetSchedulerMetrics

                                                                                                                                                                                                                                                                                                                        func ResetSchedulerMetrics(c clientset.Interface) error

                                                                                                                                                                                                                                                                                                                        func ResizeGroup

                                                                                                                                                                                                                                                                                                                        func ResizeGroup(group string, size int32) error

                                                                                                                                                                                                                                                                                                                        func ResourceUsageToPerfData

                                                                                                                                                                                                                                                                                                                        func ResourceUsageToPerfData(usagePerNode ResourceUsagePerNode) *perftype.PerfData

                                                                                                                                                                                                                                                                                                                          ResourceUsageToPerfData transforms ResourceUsagePerNode to PerfData. Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary.

                                                                                                                                                                                                                                                                                                                          func ResourceUsageToPerfDataWithLabels

                                                                                                                                                                                                                                                                                                                          func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels map[string]string) *perftype.PerfData

                                                                                                                                                                                                                                                                                                                            ResourceUsageToPerfDataWithLabels transforms ResourceUsagePerNode to PerfData with additional labels. Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary.

                                                                                                                                                                                                                                                                                                                            func RestartApiserver

                                                                                                                                                                                                                                                                                                                            func RestartApiserver(cs clientset.Interface) error

                                                                                                                                                                                                                                                                                                                            func RestartControllerManager

                                                                                                                                                                                                                                                                                                                            func RestartControllerManager() error

                                                                                                                                                                                                                                                                                                                            func RestartKubeProxy

                                                                                                                                                                                                                                                                                                                            func RestartKubeProxy(host string) error

                                                                                                                                                                                                                                                                                                                            func RestartKubelet

                                                                                                                                                                                                                                                                                                                            func RestartKubelet(host string) error

                                                                                                                                                                                                                                                                                                                            func RestclientConfig

                                                                                                                                                                                                                                                                                                                            func RestclientConfig(kubeContext string) (*clientcmdapi.Config, error)

                                                                                                                                                                                                                                                                                                                            func RunCleanupActions

                                                                                                                                                                                                                                                                                                                            func RunCleanupActions()

                                                                                                                                                                                                                                                                                                                              RunCleanupActions runs all functions installed by AddCleanupAction. It does not remove them (see RemoveCleanupAction) but it does run unlocked, so they may remove themselves.

                                                                                                                                                                                                                                                                                                                              func RunCmd

                                                                                                                                                                                                                                                                                                                              func RunCmd(command string, args ...string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                RunCmd runs cmd using args and returns its stdout and stderr. It also outputs cmd's stdout and stderr to their respective OS streams.

                                                                                                                                                                                                                                                                                                                                func RunCmdEnv

                                                                                                                                                                                                                                                                                                                                func RunCmdEnv(env []string, command string, args ...string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                  RunCmdEnv runs cmd with the provided environment and args and returns its stdout and stderr. It also outputs cmd's stdout and stderr to their respective OS streams.

                                                                                                                                                                                                                                                                                                                                  func RunDeployment

                                                                                                                                                                                                                                                                                                                                  func RunDeployment(config testutils.DeploymentConfig) error

                                                                                                                                                                                                                                                                                                                                  func RunHostCmd

                                                                                                                                                                                                                                                                                                                                  func RunHostCmd(ns, name, cmd string) (string, error)

                                                                                                                                                                                                                                                                                                                                    RunHostCmd runs the given cmd in the context of the given pod using `kubectl exec` inside of a shell.

                                                                                                                                                                                                                                                                                                                                    func RunHostCmdOrDie

                                                                                                                                                                                                                                                                                                                                    func RunHostCmdOrDie(ns, name, cmd string) string

                                                                                                                                                                                                                                                                                                                                      RunHostCmdOrDie calls RunHostCmd and dies on error.

                                                                                                                                                                                                                                                                                                                                      func RunHostCmdWithRetries

                                                                                                                                                                                                                                                                                                                                      func RunHostCmdWithRetries(ns, name, cmd string, interval, timeout time.Duration) (string, error)

                                                                                                                                                                                                                                                                                                                                        RunHostCmdWithRetries calls RunHostCmd and retries all errors until it succeeds or the specified timeout expires. This can be used with idempotent commands to deflake transient Node issues.

                                                                                                                                                                                                                                                                                                                                        func RunIfContainerRuntimeIs

                                                                                                                                                                                                                                                                                                                                        func RunIfContainerRuntimeIs(runtimes ...string)

                                                                                                                                                                                                                                                                                                                                        func RunIfSystemSpecNameIs

                                                                                                                                                                                                                                                                                                                                        func RunIfSystemSpecNameIs(names ...string)

                                                                                                                                                                                                                                                                                                                                        func RunKubectl

                                                                                                                                                                                                                                                                                                                                        func RunKubectl(args ...string) (string, error)

                                                                                                                                                                                                                                                                                                                                          RunKubectl is a convenience wrapper over kubectlBuilder

                                                                                                                                                                                                                                                                                                                                          func RunKubectlInput

                                                                                                                                                                                                                                                                                                                                          func RunKubectlInput(data string, args ...string) (string, error)

                                                                                                                                                                                                                                                                                                                                            RunKubectlInput is a convenience wrapper over kubectlBuilder that takes input to stdin

                                                                                                                                                                                                                                                                                                                                            func RunKubectlOrDie

                                                                                                                                                                                                                                                                                                                                            func RunKubectlOrDie(args ...string) string

                                                                                                                                                                                                                                                                                                                                              RunKubectlOrDie is a convenience wrapper over kubectlBuilder

                                                                                                                                                                                                                                                                                                                                              func RunKubectlOrDieInput

                                                                                                                                                                                                                                                                                                                                              func RunKubectlOrDieInput(data string, args ...string) string

                                                                                                                                                                                                                                                                                                                                                RunKubectlOrDieInput is a convenience wrapper over kubectlBuilder that takes input to stdin

                                                                                                                                                                                                                                                                                                                                                func RunKubemciCmd

                                                                                                                                                                                                                                                                                                                                                func RunKubemciCmd(args ...string) (string, error)

                                                                                                                                                                                                                                                                                                                                                  RunKubemciCmd is a convenience wrapper over kubectlBuilder to run kubemci. It assumes that kubemci exists in PATH.

                                                                                                                                                                                                                                                                                                                                                  func RunKubemciWithKubeconfig

                                                                                                                                                                                                                                                                                                                                                  func RunKubemciWithKubeconfig(args ...string) (string, error)

                                                                                                                                                                                                                                                                                                                                                    RunKubemciWithKubeconfig is a convenience wrapper over RunKubemciCmd

                                                                                                                                                                                                                                                                                                                                                    func RunRC

                                                                                                                                                                                                                                                                                                                                                    func RunRC(config testutils.RCConfig) error

                                                                                                                                                                                                                                                                                                                                                    func RunReplicaSet

                                                                                                                                                                                                                                                                                                                                                    func RunReplicaSet(config testutils.ReplicaSetConfig) error

                                                                                                                                                                                                                                                                                                                                                    func RunSSHCommandViaBastion

                                                                                                                                                                                                                                                                                                                                                    func RunSSHCommandViaBastion(cmd, user, bastion, host string, signer ssh.Signer) (string, string, int, error)

                                                                                                                                                                                                                                                                                                                                                      RunSSHCommandViaBastion returns the stdout, stderr, and exit code from running cmd on host as specific user, along with any SSH-level error. It uses an SSH proxy to connect to bastion, then via that tunnel connects to the remote host. Similar to sshutil.RunSSHCommand but scoped to the needs of the test infrastructure.

                                                                                                                                                                                                                                                                                                                                                      func ScaleDeployment

                                                                                                                                                                                                                                                                                                                                                      func ScaleDeployment(clientset clientset.Interface, scalesGetter scaleclient.ScalesGetter, ns, name string, size uint, wait bool) error

                                                                                                                                                                                                                                                                                                                                                      func ScaleRC

                                                                                                                                                                                                                                                                                                                                                      func ScaleRC(clientset clientset.Interface, scalesGetter scaleclient.ScalesGetter, ns, name string, size uint, wait bool) error

                                                                                                                                                                                                                                                                                                                                                      func ScaleRCByLabels

                                                                                                                                                                                                                                                                                                                                                      func ScaleRCByLabels(clientset clientset.Interface, scalesGetter scaleclient.ScalesGetter, ns string, l map[string]string, replicas uint) error

                                                                                                                                                                                                                                                                                                                                                        ScaleRCByLabels scales an RC via ns/label lookup. If replicas == 0 it waits till none are running, otherwise it does what a synchronous scale operation would do.

                                                                                                                                                                                                                                                                                                                                                        func ScaleResource

                                                                                                                                                                                                                                                                                                                                                        func ScaleResource(
                                                                                                                                                                                                                                                                                                                                                        	clientset clientset.Interface,
                                                                                                                                                                                                                                                                                                                                                        	scalesGetter scaleclient.ScalesGetter,
                                                                                                                                                                                                                                                                                                                                                        	ns, name string,
                                                                                                                                                                                                                                                                                                                                                        	size uint,
                                                                                                                                                                                                                                                                                                                                                        	wait bool,
                                                                                                                                                                                                                                                                                                                                                        	kind schema.GroupKind,
                                                                                                                                                                                                                                                                                                                                                        	gr schema.GroupResource,
                                                                                                                                                                                                                                                                                                                                                        ) error

                                                                                                                                                                                                                                                                                                                                                        func ServerVersionGTE

                                                                                                                                                                                                                                                                                                                                                        func ServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface) (bool, error)

                                                                                                                                                                                                                                                                                                                                                          ServerVersionGTE returns true if v is greater than or equal to the server version.

                                                                                                                                                                                                                                                                                                                                                          TODO(18726): This should be incorporated into client.VersionInterface.

                                                                                                                                                                                                                                                                                                                                                          func ServiceResponding

                                                                                                                                                                                                                                                                                                                                                          func ServiceResponding(c clientset.Interface, ns, name string) error

                                                                                                                                                                                                                                                                                                                                                          func SimpleGET

                                                                                                                                                                                                                                                                                                                                                          func SimpleGET(c *http.Client, url, host string) (string, error)

                                                                                                                                                                                                                                                                                                                                                            SimpleGET executes a get on the given url, returns error if non-200 returned.

                                                                                                                                                                                                                                                                                                                                                            func SkipIfContainerRuntimeIs

                                                                                                                                                                                                                                                                                                                                                            func SkipIfContainerRuntimeIs(runtimes ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipIfMissingResource

                                                                                                                                                                                                                                                                                                                                                            func SkipIfMissingResource(dynamicClient dynamic.Interface, gvr schema.GroupVersionResource, namespace string)

                                                                                                                                                                                                                                                                                                                                                            func SkipIfMultizone

                                                                                                                                                                                                                                                                                                                                                            func SkipIfMultizone(c clientset.Interface)

                                                                                                                                                                                                                                                                                                                                                            func SkipIfProviderIs

                                                                                                                                                                                                                                                                                                                                                            func SkipIfProviderIs(unsupportedProviders ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessAtLeast

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessAtLeast(value int, minValue int, message string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessClusterMonitoringModeIs

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessClusterMonitoringModeIs(supportedMonitoring ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessKubectlVersionGTE

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessKubectlVersionGTE(v *utilversion.Version)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessLocalEphemeralStorageEnabled

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessLocalEphemeralStorageEnabled()

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessMasterOSDistroIs

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessMasterOSDistroIs(supportedMasterOsDistros ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessMultizone

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessMultizone(c clientset.Interface)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeCountIsAtLeast

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeCountIsAtLeast(minNodeCount int)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeCountIsAtMost

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeCountIsAtMost(maxNodeCount int)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeOSDistroIs

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessNodeOSDistroIs(supportedNodeOsDistros ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessPrometheusMonitoringIsEnabled

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessPrometheusMonitoringIsEnabled(supportedMonitoring ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessProviderIs

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessProviderIs(supportedProviders ...string)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessSSHKeyPresent

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessSSHKeyPresent()

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessSecretExistsAfterWait

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessSecretExistsAfterWait(c clientset.Interface, name, namespace string, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessTaintBasedEvictionsEnabled

                                                                                                                                                                                                                                                                                                                                                            func SkipUnlessTaintBasedEvictionsEnabled()

                                                                                                                                                                                                                                                                                                                                                            func Skipf

                                                                                                                                                                                                                                                                                                                                                            func Skipf(format string, args ...interface{})

                                                                                                                                                                                                                                                                                                                                                            func StartCPUProfileGatherer

                                                                                                                                                                                                                                                                                                                                                            func StartCPUProfileGatherer(componentName string, profileBaseName string, interval time.Duration) chan struct{}

                                                                                                                                                                                                                                                                                                                                                              StartCPUProfileGatherer performs polling-based gathering of the component's CPU profile. It takes the interval b/w consecutive gatherings as an argument and starts the gathering goroutine. To stop the gatherer, close the returned channel.

                                                                                                                                                                                                                                                                                                                                                              func StartCmdAndStreamOutput

                                                                                                                                                                                                                                                                                                                                                              func StartCmdAndStreamOutput(cmd *exec.Cmd) (stdout, stderr io.ReadCloser, err error)

                                                                                                                                                                                                                                                                                                                                                              func StartServeHostnameService

                                                                                                                                                                                                                                                                                                                                                              func StartServeHostnameService(c clientset.Interface, internalClient internalclientset.Interface, svc *v1.Service, ns string, replicas int) ([]string, string, error)

                                                                                                                                                                                                                                                                                                                                                                StartServeHostnameService creates a replication controller that serves its hostname and a service on top of it.

                                                                                                                                                                                                                                                                                                                                                                func StartVolumeServer

                                                                                                                                                                                                                                                                                                                                                                func StartVolumeServer(client clientset.Interface, config VolumeTestConfig) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                  Starts a container specified by config.serverImage and exports all config.serverPorts from it. The returned pod should be used to get the server IP address and create appropriate VolumeSource.

                                                                                                                                                                                                                                                                                                                                                                  func StopServeHostnameService

                                                                                                                                                                                                                                                                                                                                                                  func StopServeHostnameService(clientset clientset.Interface, ns, name string) error

                                                                                                                                                                                                                                                                                                                                                                  func TargetContainers

                                                                                                                                                                                                                                                                                                                                                                  func TargetContainers() []string

                                                                                                                                                                                                                                                                                                                                                                    A list of containers for which we want to collect resource usage.

                                                                                                                                                                                                                                                                                                                                                                    func TestHitNodesFromOutside

                                                                                                                                                                                                                                                                                                                                                                    func TestHitNodesFromOutside(externalIP string, httpPort int32, timeout time.Duration, expectedHosts sets.String) error

                                                                                                                                                                                                                                                                                                                                                                    func TestHitNodesFromOutsideWithCount

                                                                                                                                                                                                                                                                                                                                                                    func TestHitNodesFromOutsideWithCount(externalIP string, httpPort int32, timeout time.Duration, expectedHosts sets.String,
                                                                                                                                                                                                                                                                                                                                                                    	countToSucceed int) error

                                                                                                                                                                                                                                                                                                                                                                    func TestUnderTemporaryNetworkFailure

                                                                                                                                                                                                                                                                                                                                                                    func TestUnderTemporaryNetworkFailure(c clientset.Interface, ns string, node *v1.Node, testFunc func())

                                                                                                                                                                                                                                                                                                                                                                      Blocks outgoing network traffic on 'node'. Then runs testFunc and returns its status. At the end (even in case of errors), the network traffic is brought back to normal. This function executes commands on a node so it will work only for some environments.

                                                                                                                                                                                                                                                                                                                                                                      func TestVolumeClient

                                                                                                                                                                                                                                                                                                                                                                      func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGroup *int64, fsType string, tests []VolumeTest)

                                                                                                                                                                                                                                                                                                                                                                        TestVolumeClient start a client pod using given VolumeSource (exported by startVolumeServer()) and check that the pod sees expected data, e.g. from the server pod. Multiple VolumeTests can be specified to mount multiple volumes to a single pod.

                                                                                                                                                                                                                                                                                                                                                                        func TryKill

                                                                                                                                                                                                                                                                                                                                                                        func TryKill(cmd *exec.Cmd)

                                                                                                                                                                                                                                                                                                                                                                          Rough equivalent of ctrl+c for cleaning up processes. Intended to be run in defer.

                                                                                                                                                                                                                                                                                                                                                                          func UnblockNetwork

                                                                                                                                                                                                                                                                                                                                                                          func UnblockNetwork(from string, to string)

                                                                                                                                                                                                                                                                                                                                                                          func UpdateDaemonSetWithRetries

                                                                                                                                                                                                                                                                                                                                                                          func UpdateDaemonSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateDSFunc) (ds *apps.DaemonSet, err error)

                                                                                                                                                                                                                                                                                                                                                                          func UpdateDeploymentWithRetries

                                                                                                                                                                                                                                                                                                                                                                          func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateDeploymentFunc) (*apps.Deployment, error)

                                                                                                                                                                                                                                                                                                                                                                          func UpdateJob

                                                                                                                                                                                                                                                                                                                                                                          func UpdateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error)

                                                                                                                                                                                                                                                                                                                                                                            UpdateJob uses c to updated job in namespace ns. If the returned error is nil, the returned Job is valid and has been updated.

                                                                                                                                                                                                                                                                                                                                                                            func UpdateJobFunc

                                                                                                                                                                                                                                                                                                                                                                            func UpdateJobFunc(c clientset.Interface, ns, name string, updateFn func(job *batch.Job))

                                                                                                                                                                                                                                                                                                                                                                              UpdateJobFunc updates the job object. It retries if there is a conflict, throw out error if there is any other errors. name is the job name, updateFn is the function updating the job object.

                                                                                                                                                                                                                                                                                                                                                                              func UpdateJobWithRetries

                                                                                                                                                                                                                                                                                                                                                                              func UpdateJobWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateJobFunc) (job *batch.Job, err error)

                                                                                                                                                                                                                                                                                                                                                                              func UpdatePodWithRetries

                                                                                                                                                                                                                                                                                                                                                                              func UpdatePodWithRetries(client clientset.Interface, ns, name string, update func(*v1.Pod)) (*v1.Pod, error)

                                                                                                                                                                                                                                                                                                                                                                              func UpdateReplicaSetWithRetries

                                                                                                                                                                                                                                                                                                                                                                              func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateReplicaSetFunc) (*apps.ReplicaSet, error)

                                                                                                                                                                                                                                                                                                                                                                              func UpdateReplicationControllerWithRetries

                                                                                                                                                                                                                                                                                                                                                                              func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateRcFunc) (*v1.ReplicationController, error)

                                                                                                                                                                                                                                                                                                                                                                              func UpdateService

                                                                                                                                                                                                                                                                                                                                                                              func UpdateService(c clientset.Interface, namespace, serviceName string, update func(*v1.Service)) (*v1.Service, error)

                                                                                                                                                                                                                                                                                                                                                                                UpdateService fetches a service, calls the update function on it, and then attempts to send the updated service. It retries up to 2 times in the face of timeouts and conflicts.

                                                                                                                                                                                                                                                                                                                                                                                func UpdateStatefulSetWithRetries

                                                                                                                                                                                                                                                                                                                                                                                func UpdateStatefulSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateStatefulSetFunc) (statefulSet *apps.StatefulSet, err error)

                                                                                                                                                                                                                                                                                                                                                                                func ValidateController

                                                                                                                                                                                                                                                                                                                                                                                func ValidateController(c clientset.Interface, containerImage string, replicas int, containername string, testname string, validator validatorFn, ns string)

                                                                                                                                                                                                                                                                                                                                                                                  ValidateController is a generic mechanism for testing RC's that are running. It takes a container name, a test name, and a validator function which is plugged in by a specific test. "containername": this is grepped for. "containerImage" : this is the name of the image we expect to be launched. Not to confuse w/ images (kitten.jpg) which are validated. "testname": which gets bubbled up to the logging/failure messages if errors happen. "validator" function: This function is given a podID and a client, and it can do some specific validations that way.

                                                                                                                                                                                                                                                                                                                                                                                  func ValidateEndpointsOrFail

                                                                                                                                                                                                                                                                                                                                                                                  func ValidateEndpointsOrFail(c clientset.Interface, namespace, serviceName string, expectedEndpoints PortsByPodName)

                                                                                                                                                                                                                                                                                                                                                                                  func VerifyLatencyWithinThreshold

                                                                                                                                                                                                                                                                                                                                                                                  func VerifyLatencyWithinThreshold(threshold, actual LatencyMetric, metricName string) error

                                                                                                                                                                                                                                                                                                                                                                                    Verifies whether 50, 90 and 99th percentiles of a latency metric are within the expected threshold.

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyPods

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyPods(c clientset.Interface, ns, name string, wantName bool, replicas int32) error

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyPodsRunning

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyPodsRunning(c clientset.Interface, ns, name string, wantName bool, replicas int32) error

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyServeHostnameServiceDown

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyServeHostnameServiceDown(c clientset.Interface, host string, serviceIP string, servicePort int) error

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyServeHostnameServiceUp

                                                                                                                                                                                                                                                                                                                                                                                    func VerifyServeHostnameServiceUp(c clientset.Interface, ns, host string, expectedPods []string, serviceIP string, servicePort int) error

                                                                                                                                                                                                                                                                                                                                                                                      VerifyServeHostnameServiceUp wgets the given serviceIP:servicePort from the given host and from within a pod. The host is expected to be an SSH-able node in the cluster. Each pod in the service is expected to echo its name. These names are compared with the given expectedPods list after a sort | uniq.

                                                                                                                                                                                                                                                                                                                                                                                      func VerifyThatTaintIsGone

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

                                                                                                                                                                                                                                                                                                                                                                                      func VolumeTestCleanup

                                                                                                                                                                                                                                                                                                                                                                                      func VolumeTestCleanup(f *Framework, config VolumeTestConfig)

                                                                                                                                                                                                                                                                                                                                                                                        Clean both server and client pods.

                                                                                                                                                                                                                                                                                                                                                                                        func WaitAndVerifyBinds

                                                                                                                                                                                                                                                                                                                                                                                        func WaitAndVerifyBinds(c clientset.Interface, ns string, pvols PVMap, claims PVCMap, testExpected bool) error

                                                                                                                                                                                                                                                                                                                                                                                          Search for bound PVs and PVCs by examining pvols for non-nil claimRefs. NOTE: Each iteration waits for a maximum of 3 minutes per PV and, if the PV is bound,

                                                                                                                                                                                                                                                                                                                                                                                          up to 3 minutes for the PVC. When the number of PVs != number of PVCs, this can lead
                                                                                                                                                                                                                                                                                                                                                                                          to situations where the maximum wait times are reached several times in succession,
                                                                                                                                                                                                                                                                                                                                                                                          extending test time. Thus, it is recommended to keep the delta between PVs and PVCs
                                                                                                                                                                                                                                                                                                                                                                                          small.
                                                                                                                                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                                                          func WaitForAllJobPodsGone

                                                                                                                                                                                                                                                                                                                                                                                          func WaitForAllJobPodsGone(c clientset.Interface, ns, jobName string) error

                                                                                                                                                                                                                                                                                                                                                                                            WaitForAllJobPodsRunning wait for all pods for the Job named jobName in namespace ns to be deleted.

                                                                                                                                                                                                                                                                                                                                                                                            func WaitForAllJobPodsRunning

                                                                                                                                                                                                                                                                                                                                                                                            func WaitForAllJobPodsRunning(c clientset.Interface, ns, jobName string, parallelism int32) error

                                                                                                                                                                                                                                                                                                                                                                                              WaitForAllJobPodsRunning wait for all pods for the Job named JobName in namespace ns to become Running. Only use when pods will run for a long time, or it will be racy.

                                                                                                                                                                                                                                                                                                                                                                                              func WaitForAllNodesHealthy

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

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

                                                                                                                                                                                                                                                                                                                                                                                                func WaitForAllNodesSchedulable

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

                                                                                                                                                                                                                                                                                                                                                                                                  WaitForAllNodesSchedulable waits up to timeout for all (but TestContext.AllowedNotReadyNodes) to become scheduable.

                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForApiserverUp

                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForApiserverUp(c clientset.Interface) error

                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForAuthorizationUpdate

                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, user, namespace, verb string, resource schema.GroupResource, allowed bool) error

                                                                                                                                                                                                                                                                                                                                                                                                    WaitForAuthorizationUpdate checks if the given user can perform the named verb and action. If policyCachePollTimeout is reached without the expected condition matching, an error is returned

                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForControlledPods

                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForControlledPods(c clientset.Interface, ns, name string, kind schema.GroupKind) (pods *v1.PodList, err error)

                                                                                                                                                                                                                                                                                                                                                                                                      Wait up to PodListTimeout for getting pods of the specified controller name and return them.

                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForControlledPodsRunning

                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind schema.GroupKind) error

                                                                                                                                                                                                                                                                                                                                                                                                        Wait up to 10 minutes for pods to become Running.

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForControllerManagerUp

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForControllerManagerUp() error

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForDaemonSets

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForDaemonSets(c clientset.Interface, ns string, allowedNotReadyNodes int32, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                          WaitForDaemonSets for all daemonsets in the given namespace to be ready (defined as all but 'allowedNotReadyNodes' pods associated with that daemonset are ready).

                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForDefaultServiceAccountInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForDefaultServiceAccountInNamespace(c clientset.Interface, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                            WaitForDefaultServiceAccountInNamespace waits for the default service account to be provisioned the default service account is what is associated with pods when they do not specify a service account as a result, pods are not able to be provisioned in a namespace until the service account is provisioned

                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForDeploymentComplete

                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForDeploymentComplete(c clientset.Interface, d *apps.Deployment) error

                                                                                                                                                                                                                                                                                                                                                                                                              Waits for the deployment to complete, and don't check if rolling update strategy is broken. Rolling update strategy is used only during a rolling update, and can be violated in other situations, such as shortly after a scaling event or the deployment is just created.

                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForDeploymentCompleteAndCheckRolling

                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForDeploymentCompleteAndCheckRolling(c clientset.Interface, d *apps.Deployment) error

                                                                                                                                                                                                                                                                                                                                                                                                                Waits for the deployment to complete, and check rolling update strategy isn't broken at any times. Rolling update strategy should not be broken during a rolling update.

                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForDeploymentOldRSsNum

                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForDeploymentOldRSsNum(c clientset.Interface, ns, deploymentName string, desiredRSNum int) error

                                                                                                                                                                                                                                                                                                                                                                                                                  Waits for the deployment to clean up old rcs.

                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForDeploymentRevision

                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForDeploymentRevision(c clientset.Interface, d *apps.Deployment, targetRevision string) error

                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForDeploymentRevisionAndImage

                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName string, revision, image string) error

                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForDeploymentRevisionAndImage waits for the deployment's and its new RS's revision and container image to match the given revision and image. Note that deployment revision and its new RS revision should be updated shortly most of the time, but an overwhelmed RS controller may result in taking longer to relabel a RS.

                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForDeploymentRollbackCleared

                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForDeploymentRollbackCleared(c clientset.Interface, ns, deploymentName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                      WaitForDeploymentRollbackCleared waits for given deployment either started rolling back or doesn't need to rollback. Note that rollback should be cleared shortly, so we only wait for 1 minute here to fail early.

                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForDeploymentUpdatedReplicasGTE

                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForDeploymentUpdatedReplicasGTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, desiredGeneration int64) error

                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForDeploymentUpdatedReplicasGTE waits for given deployment to be observed by the controller and has at least a number of updatedReplicas

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForDeploymentWithCondition

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, condType apps.DeploymentConditionType) error

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForEndpoint

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForEndpoint(c clientset.Interface, ns, name string) error

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForEvents

                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForEvents(c clientset.Interface, ns string, objOrRef runtime.Object, desiredEventsCount int) error

                                                                                                                                                                                                                                                                                                                                                                                                                          Waits for the number of events on the given object to reach a desired count.

                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForGroupSize

                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForGroupSize(group string, size int32) error

                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForJobComplete

                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForJobComplete(c clientset.Interface, ns, jobName string, completions int32) error

                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForJobComplete uses c to wait for completions to complete for the Job jobName in namespace ns.

                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForJobDeleting

                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForJobDeleting(c clientset.Interface, ns, jobName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForJobDeleting uses c to wait for the Job jobName in namespace ns to have a non-nil deletionTimestamp (i.e. being deleted).

                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForJobFailure

                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForJobFailure(c clientset.Interface, ns, jobName string, timeout time.Duration, reason string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                WaitForJobFailure uses c to wait for up to timeout for the Job named jobName in namespace ns to fail.

                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForJobFinish

                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForJobFinish(c clientset.Interface, ns, jobName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitForJobFinish uses c to wait for the Job jobName in namespace ns to finish (either Failed or Complete).

                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForJobGone

                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForJobGone(c clientset.Interface, ns, jobName string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForJobGone uses c to wait for up to timeout for the Job named jobName in namespace ns to be removed.

                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForKubeletUp

                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForKubeletUp(host string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForMasters

                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForMasters(masterPrefix string, c clientset.Interface, size int, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                      waitForMasters waits until the cluster has the desired number of ready masters in it.

                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForMatchPodsCondition

                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForMatchPodsCondition(c clientset.Interface, opts metav1.ListOptions, desc string, timeout time.Duration, condition podCondition) error

                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForMatchPodsCondition finds match pods based on the input ListOptions. waits and checks if all match pods are in the given podCondition

                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForNamedAuthorizationUpdate

                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForNamedAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, user, namespace, verb, resourceName string, resource schema.GroupResource, allowed bool) error

                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForAuthorizationUpdate checks if the given user can perform the named verb and action on the named resource. If policyCachePollTimeout is reached without the expected condition matching, an error is returned

                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForNamespacesDeleted

                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForNamespacesDeleted(c clientset.Interface, namespaces []string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForNodeHasTaintOrNot

                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForNodeHasTaintOrNot(c clientset.Interface, nodeName string, taint *v1.Taint, wantTrue bool, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForNodeHasTaintOrNot waits for a taint to be added/removed from the node until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForNodeToBe

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

                                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForNodeToBe 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 WaitForObservedDeployment

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForObservedDeployment(c clientset.Interface, ns, deploymentName string, desiredGeneration int64) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPVClaimBoundPhase

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPVClaimBoundPhase(client clientset.Interface, pvclaims []*v1.PersistentVolumeClaim, timeout time.Duration) ([]*v1.PersistentVolume, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                    wait until all pvcs phase set to bound

                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPartialEvents

                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPartialEvents(c clientset.Interface, ns string, objOrRef runtime.Object, atLeastEventsCount int) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                      Waits for the number of events on the given object to be at least a desired count.

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPersistentVolumeClaimDeleted

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPersistentVolumeClaimDeleted(c clientset.Interface, ns string, pvcName string, Poll, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForPersistentVolumeClaimDeleted waits for a PersistentVolumeClaim to be removed from the system until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForPersistentVolumeClaimPhase

                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForPersistentVolumeClaimPhase(phase v1.PersistentVolumeClaimPhase, c clientset.Interface, ns string, pvcName string, Poll, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForPersistentVolumeClaimPhase waits for a PersistentVolumeClaim to be in a specific phase or until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForPersistentVolumeClaimsPhase

                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForPersistentVolumeClaimsPhase(phase v1.PersistentVolumeClaimPhase, c clientset.Interface, ns string, pvcNames []string, Poll, timeout time.Duration, matchAny bool) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForPersistentVolumeClaimPhase waits for any (if matchAny is true) or all (if matchAny is false) PersistentVolumeClaims to be in a specific phase or until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForPersistentVolumeDeleted

                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForPersistentVolumeDeleted waits for a PersistentVolume to get deleted or until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPersistentVolumePhase

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPersistentVolumePhase(phase v1.PersistentVolumePhase, c clientset.Interface, pvName string, Poll, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                WaitForPersistentVolumePhase waits for a PersistentVolume to be in a specific phase or until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodCondition

                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeout time.Duration, condition podCondition) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodNameRunningInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodNameRunningInNamespace(c clientset.Interface, podName, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Waits default amount of time (PodStartTimeout) for the specified pod to become running. Returns an error if timeout occurs first, or pod goes in to failed state.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPodNameUnschedulableInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPodNameUnschedulableInNamespace(c clientset.Interface, podName, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForPodNameUnschedulableInNamespace returns an error if it takes too long for the pod to become Pending and have condition Status equal to Unschedulable, if the pod Get api returns an error (IsNotFound or other), or if the pod failed with an unexpected reason. Typically called to test that the passed-in pod is Pending and Unschedulable.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPodNoLongerRunningInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPodNoLongerRunningInNamespace(c clientset.Interface, podName, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Waits default amount of time (DefaultPodDeletionTimeout) for the specified pod to stop running. Returns an error if timeout occurs first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPodNotPending

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPodNotPending(c clientset.Interface, ns, podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForPodNotPending returns an error if it took too long for the pod to go out of pending state. The resourceVersion is used when Watching object changes, it tells since when we care about changes to the pod.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForPodRunningInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForPodRunningInNamespace(c clientset.Interface, pod *v1.Pod) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Waits default amount of time (PodStartTimeout) for the specified pod to become running. Returns an error if timeout occurs first, or pod goes in to failed state.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForPodSuccessInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForPodSuccessInNamespace(c clientset.Interface, podName string, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForPodSuccessInNamespace returns nil if the pod reached state success, or an error if it reached failure or until podStartupTimeout.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForPodSuccessInNamespaceSlow

                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForPodSuccessInNamespaceSlow(c clientset.Interface, podName string, namespace string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForPodSuccessInNamespaceSlow returns nil if the pod reached state success, or an error if it reached failure or until slowPodStartupTimeout.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodToDisappear

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodToDisappear(c clientset.Interface, ns, podName string, label labels.Selector, interval, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodsReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodsReady(c clientset.Interface, ns, name string, minReadySeconds int) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodsRunningReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedNotReadyPods int32, timeout time.Duration, ignoreLabels map[string]string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                WaitForPodsRunningReady waits up to timeout to ensure that all pods in namespace ns are either running and ready, or failed but controlled by a controller. Also, it ensures that at least minPods are running and ready. It has separate behavior from other 'wait for' pods functions in that it requests the list of pods on every iteration. This is useful, for example, in cluster startup, because the number of pods increases while waiting. All pods that are in SUCCESS state are not counted.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                If ignoreLabels is not empty, pods matching this selector are ignored.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodsSuccess

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForPodsSuccess(c clientset.Interface, ns string, successPodLabels map[string]string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitForPodsSuccess waits till all labels matching the given selector enter the Success state. The caller is expected to only invoke this method once the pods have been created.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPodsWithLabel

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForPodsWithLabel(c clientset.Interface, ns string, label labels.Selector) (pods *v1.PodList, err error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Wait up to PodListTimeout for getting pods with certain label

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPodsWithLabelRunningReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForPodsWithLabelRunningReady(c clientset.Interface, ns string, label labels.Selector, num int, timeout time.Duration) (pods *v1.PodList, err error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Wait for exact amount of matching pods to become running and ready. Return the list of matching pods.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPodsWithLabelScheduled

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForPodsWithLabelScheduled(c clientset.Interface, ns string, label labels.Selector) (pods *v1.PodList, err error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Wait for all matching pods to become scheduled and at least one matching pod exists. Return the list of matching pods.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForRCPodToDisappear

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForRCPodToDisappear(c clientset.Interface, ns, rcName, podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForRCPodToDisappear returns nil if the pod from the given replication controller (described by rcName) no longer exists. In case of failure or too long waiting time, an error is returned.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForRCToStabilize

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForRCToStabilize(c clientset.Interface, ns, name string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForRCToStabilize waits till the RC has a matching generation/replica count between spec and status.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            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 Nodes excluding Master Node.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForReadyReplicaSet

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForReadyReplicaSet(c clientset.Interface, ns, name string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                WaitForReadyReplicaSet waits until the replicaset has all of its replicas ready.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForReplicaSetDesiredReplicas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForReplicaSetDesiredReplicas(rsClient appsclient.ReplicaSetsGetter, replicaSet *apps.ReplicaSet) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitForReplicaSetDesiredReplicas waits until the replicaset has desired number of replicas.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForReplicaSetTargetAvailableReplicas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForReplicaSetTargetAvailableReplicas(c clientset.Interface, replicaSet *apps.ReplicaSet, targetReplicaNum int32) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForReplicaSetTargetAvailableReplicas waits for .status.availableReplicas of a RS to equal targetReplicaNum

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForReplicaSetTargetSpecReplicas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitForReplicaSetTargetSpecReplicas(c clientset.Interface, replicaSet *apps.ReplicaSet, targetReplicaNum int32) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      WaitForReplicaSetTargetSpecReplicas waits for .spec.replicas of a RS to equal targetReplicaNum

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForReplicationController

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForReplicationController(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForReplicationController waits until the RC appears (exist == true), or disappears (exist == false)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForReplicationControllerwithSelector

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForReplicationControllerwithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, interval,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForReplicationControllerwithSelector waits until any RC with given selector appears (exist == true), or disappears (exist == false)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForService

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func WaitForService(c clientset.Interface, namespace, name string, exist bool, interval, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForService waits until the service appears (exist == true), or disappears (exist == false)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForServiceEndpointsNum

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func WaitForServiceEndpointsNum(c clientset.Interface, namespace, serviceName string, expectNum int, interval, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForServiceEndpointsNum waits until the amount of endpoints that implement service to expectNum.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForServiceWithSelector

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func WaitForServiceWithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, interval,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                WaitForServiceWithSelector waits until any service with given selector appears (exist == true), or disappears (exist == false)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForStableCluster

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitForStableCluster waits until all existing pods are scheduled and returns their amount.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForStatefulSetReplicasReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func WaitForStatefulSetReplicasReady(statefulSetName, ns string, c clientset.Interface, Poll, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForStatefulSetReplicasReady waits for all replicas of a StatefulSet to become ready or until timeout occurs, whichever comes first.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitOnPVandPVC

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func WaitOnPVandPVC(c clientset.Interface, ns string, pv *v1.PersistentVolume, pvc *v1.PersistentVolumeClaim) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Wait for the pv and pvc to bind to each other.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitTimeoutForPodEvent

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitTimeoutForPodEvent(c clientset.Interface, podName, namespace, eventSelector, msg string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitTimeoutForPodEvent waits for an event to occur for a pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitTimeoutForPodNoLongerRunningInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitTimeoutForPodNoLongerRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitTimeoutForPodRunningInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitTimeoutForPodRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WatchRecreateDeployment

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WatchRecreateDeployment(c clientset.Interface, d *apps.Deployment) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          WatchRecreateDeployment watches Recreate deployments and ensures no new pods will run at the same time with old pods.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Types

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type APICall

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type APICall struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Resource    string        `json:"resource"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Subresource string        `json:"subresource"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Verb        string        `json:"verb"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Scope       string        `json:"scope"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Latency     LatencyMetric `json:"latency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	Count       int           `json:"count"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type APIResponsiveness

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type APIResponsiveness struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          	APICalls []APICall `json:"apicalls"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func HighLatencyRequests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func HighLatencyRequests(c clientset.Interface, nodeCount int) (int, *APIResponsiveness, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Prints top five summary metrics for request types with latency and returns number of such request types above threshold. We use a higher threshold for list calls if nodeCount is above a given threshold (i.e. cluster is big).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) Len

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) Len() int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) Less

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) Less(i, j int) bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*APIResponsiveness) Swap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (a *APIResponsiveness) Swap(i, j int)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type Address

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CleanupActionHandle

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type CleanupActionHandle *int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func AddCleanupAction

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func AddCleanupAction(fn func()) CleanupActionHandle

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              AddCleanupAction installs a function that will be called in the event of the whole test being terminated. This allows arbitrary pieces of the overall test to hook into SynchronizedAfterSuite().

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ClientConfigGetter

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ClientConfigGetter func() (*restclient.Config, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CloudConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ApiEndpoint       string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ProjectID         string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Zone              string // for multizone tests, arbitrarily chosen zone
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Region            string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MultiZone         bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MultiMaster       bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Cluster           string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MasterName        string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	NodeInstanceGroup string // comma-delimited list of groups' names
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	NumNodes          int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ClusterIPRange    string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ClusterTag        string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Network           string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ConfigFile        string // for azure and openstack
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	NodeTag           string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MasterTag         string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Provider ProviderInterface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ClusterVerification

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*ClusterVerification) ForEach

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (cl *ClusterVerification) ForEach(podFunc func(v1.Pod)) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ForEach runs a function against every verifiable pod. Be warned that this doesn't wait for "n" pods to verify, so it may return very quickly if you have strict pod state requirements.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                For example, if you require at least 5 pods to be running before your test will pass, its smart to first call "clusterVerification.WaitFor(5)" before you call clusterVerification.ForEach.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*ClusterVerification) WaitFor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (cl *ClusterVerification) WaitFor(atLeast int, timeout time.Duration) ([]v1.Pod, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitFor waits for some minimum number of pods to be verified, according to the PodStateVerification definition.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*ClusterVerification) WaitForOrFail

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (cl *ClusterVerification) WaitForOrFail(atLeast int, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForOrFail provides a shorthand WaitFor with failure as an option if anything goes wrong.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ContainerFailures

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ContainerFailures struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Restarts int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ContainerResourceGatherer

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*ContainerResourceGatherer) StartGatheringData

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (g *ContainerResourceGatherer) StartGatheringData()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      StartGatheringData starts a stat gathering worker blocks for each node to track, and blocks until StopAndSummarize is called.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*ContainerResourceGatherer) StopAndSummarize

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (g *ContainerResourceGatherer) StopAndSummarize(percentiles []int, constraints map[string]ResourceConstraint) (*ResourceUsageSummary, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        StopAndSummarize stops stat gathering workers, processes the collected stats, generates resource summary for the passed-in percentiles, and returns the summary. It returns an error if the resource usage at any percentile is beyond the specified resource constraints.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainerResourceUsage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainerResourceUsage struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Name                    string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Timestamp               time.Time
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	CPUUsageInCores         float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	MemoryUsageInBytes      uint64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	MemoryWorkingSetInBytes uint64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	MemoryRSSInBytes        uint64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// The interval used to calculate CPUUsageInCores.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	CPUInterval time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainersCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ContainersCPUSummary map[string]map[float64]float64

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ContainersCPUSummary is indexed by the container name with each entry a (percentile, value) map.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CreateTestingNSFn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type CreateTestingNSFn func(baseName string, c clientset.Interface, labels map[string]string) (*v1.Namespace, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type E2ETestNodePreparer

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            E2ETestNodePreparer implements testutils.TestNodePreparer interface, which is used to create/modify Nodes before running a test.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*E2ETestNodePreparer) CleanupNodes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (p *E2ETestNodePreparer) CleanupNodes() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*E2ETestNodePreparer) PrepareNodes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (p *E2ETestNodePreparer) PrepareNodes() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type EtcdMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type EtcdMetrics struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	BackendCommitDuration     HistogramVec `json:"backendCommitDuration"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SnapshotSaveTotalDuration HistogramVec `json:"snapshotSaveTotalDuration"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	PeerRoundTripTime         HistogramVec `json:"peerRoundTripTime"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	WalFsyncDuration          HistogramVec `json:"walFsyncDuration"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	MaxDatabaseSize           float64      `json:"maxDatabaseSize"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*EtcdMetrics) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (l *EtcdMetrics) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*EtcdMetrics) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (l *EtcdMetrics) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*EtcdMetrics) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (l *EtcdMetrics) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type EtcdMetricsCollector

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func NewEtcdMetricsCollector

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func NewEtcdMetricsCollector() *EtcdMetricsCollector

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*EtcdMetricsCollector) GetMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (mc *EtcdMetricsCollector) GetMetrics() *EtcdMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*EtcdMetricsCollector) StartCollecting

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (mc *EtcdMetricsCollector) StartCollecting(interval time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              StartCollecting starts to collect etcd db size metric periodically and updates MaxDatabaseSize accordingly.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*EtcdMetricsCollector) StopAndSummarize

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (mc *EtcdMetricsCollector) StopAndSummarize() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type EventsLister

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type EventsLister func(opts metav1.ListOptions, ns string) (*v1.EventList, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ExecOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type ExecOptions struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Command []string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Namespace     string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	PodName       string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	ContainerName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Stdin         io.Reader
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	CaptureStdout bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	CaptureStderr bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	// If false, whitespace in std{err,out} will be removed.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	PreserveWhitespace bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ExecOptions passed to ExecWithOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type Factory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type Factory func() (ProviderInterface, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type FlakeReport

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type FlakeReport struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Flakes     []string `json:"flakes"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	FlakeCount int      `json:"flakeCount"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewFlakeReport

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewFlakeReport() *FlakeReport

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*FlakeReport) GetFlakeCount

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *FlakeReport) GetFlakeCount() int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*FlakeReport) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *FlakeReport) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*FlakeReport) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *FlakeReport) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*FlakeReport) RecordFlakeIfError

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *FlakeReport) RecordFlakeIfError(err error, optionalDescription ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  RecordFlakeIfError records the error (if non-nil) as a flake along with an optional description. This can be used as a replacement of framework.ExpectNoError() for non-critical errors that can be considered as 'flakes' to avoid causing failures in tests.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*FlakeReport) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (f *FlakeReport) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Framework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Framework struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	BaseName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Set together with creating the ClientSet and the namespace.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Guaranteed to be unique in the cluster even when running the same
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// test multiple times in parallel.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	UniqueName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ClientSet                        clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	KubemarkExternalClusterClientSet clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	InternalClientset *internalclientset.Clientset
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	AggregatorClient  *aggregatorclient.Clientset
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	DynamicClient     dynamic.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ScalesGetter scaleclient.ScalesGetter
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	SkipNamespaceCreation bool          // Whether to skip creating a namespace
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Namespace             *v1.Namespace // Every test has at least one namespace unless creation is skipped
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	NamespaceDeletionTimeout time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	SkipPrivilegedPSPBinding bool // Whether to skip creating a binding to the privileged PSP in the test namespace
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Constraints that passed to a check which is executed after data is gathered to
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// see if 99% of results are within acceptable bounds. It has to be injected in the test,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// as expectations vary greatly. Constraints are grouped by the container names.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	AddonResourceConstraints map[string]ResourceConstraint
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// configuration for framework's client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Options FrameworkOptions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Place where various additional data is stored during test run to be printed to ReportDir,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// or stdout if ReportDir is not set once test ends.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	TestSummaries []TestDataSummary
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Framework supports common operations used by e2e tests; it will keep a client & a namespace for you. Eventual goal is to merge this with integration test framework.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewDefaultFramework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewDefaultFramework(baseName string) *Framework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NewFramework makes a new framework and sets up a BeforeEach/AfterEach for you (you can write additional before/after each functions).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func NewFramework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func NewFramework(baseName string, options FrameworkOptions, client clientset.Interface) *Framework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Framework) AddNamespacesToDelete

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (f *Framework) AddNamespacesToDelete(namespaces ...*v1.Namespace)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        AddNamespacesToDelete adds one or more namespaces to be deleted when the test completes.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*Framework) AfterEach

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (f *Framework) AfterEach()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          AfterEach deletes the namespace, after reading its events.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) BeforeEach

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) BeforeEach()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            BeforeEach gets a client and makes a namespace.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Framework) CheckFileSizeViaContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (f *Framework) CheckFileSizeViaContainer(podName, containerName, path string) (string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Framework) CreateFromManifests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (f *Framework) CreateFromManifests(patch func(item interface{}) error, files ...string) (func(), error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CreateFromManifests is a combination of LoadFromManifests, PatchItems, patching with an optional custom function, and CreateItems.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Framework) CreateItems

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (f *Framework) CreateItems(items ...interface{}) (func(), error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CreateItems creates the items. Each of them must be an API object of a type that is registered in Factory.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                It returns either a cleanup function or an error, but never both.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Cleaning up after a test can be triggered in two ways: - the test invokes the returned cleanup function,

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                usually in an AfterEach
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - the test suite terminates, potentially after

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                skipping the test's AfterEach (https://github.com/onsi/ginkgo/issues/222)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                PatchItems has the some limitations as LoadFromManifests: - only some common items are supported, unknown ones trigger an error - only the latest stable API version for each item is supported

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Framework) CreateNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *Framework) CreateNamespace(baseName string, labels map[string]string) (*v1.Namespace, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Framework) CreatePodsPerNodeForSimpleApp

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *Framework) CreatePodsPerNodeForSimpleApp(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 (*Framework) CreateServiceForSimpleApp

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (f *Framework) CreateServiceForSimpleApp(contPort, svcPort int, appName string) *v1.Service

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    CreateServiceForSimpleApp returns a service that selects/exposes pods (send -1 ports if no exposure needed) with an app label.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Framework) CreateServiceForSimpleAppWithPods

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (f *Framework) CreateServiceForSimpleAppWithPods(contPort int, svcPort int, appName string, podSpec func(n v1.Node) v1.PodSpec, count int, block bool) (error, *v1.Service)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      CreateServiceForSimpleAppWithPods is a convenience wrapper to create a service and its matching pods all at once.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Framework) ExecCommandInContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (f *Framework) ExecCommandInContainer(podName, containerName string, cmd ...string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ExecCommandInContainer executes a command in the specified container.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*Framework) ExecCommandInContainerWithFullOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (f *Framework) ExecCommandInContainerWithFullOutput(podName, containerName string, cmd ...string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ExecCommandInContainerWithFullOutput executes a command in the specified container and return stdout, stderr and error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecCommandInPod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecCommandInPod(podName string, cmd ...string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecCommandInPodWithFullOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecCommandInPodWithFullOutput(podName string, cmd ...string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecShellInContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecShellInContainer(podName, containerName string, cmd string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecShellInPod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecShellInPod(podName string, cmd string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecShellInPodWithFullOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecShellInPodWithFullOutput(podName string, cmd string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) ExecWithOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ExecWithOptions executes a command in the specified container, returning stdout, stderr and error. `options` allowed for additional parameters to be passed.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Framework) LoadFromManifests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (f *Framework) LoadFromManifests(files ...string) ([]interface{}, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              LoadFromManifests loads .yaml or .json manifest files and returns all items that it finds in them. It supports all items for which there is a factory registered in Factories and .yaml files with multiple items separated by "---". Files are accessed via the "testfiles" package, which means they can come from a file system or be built into the binary.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              LoadFromManifests has some limitations: - aliases are not supported (i.e. use serviceAccountName instead of the deprecated serviceAccount,

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#podspec-v1-core)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              and silently ignored
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              - the latest stable API version for each item is used, regardless of what

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              is specified in the manifest files
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Framework) MatchContainerOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (f *Framework) MatchContainerOutput(
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	pod *v1.Pod,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	containerName string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	expectedOutput []string,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	matcher func(string, ...interface{}) gomegatypes.GomegaMatcher) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                MatchContainerOutput creates a pod and waits for all it's containers to exit with success. It then tests that the matcher with each expectedOutput matches the output of the specified container.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Framework) NewClusterVerification

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *Framework) NewClusterVerification(namespace *v1.Namespace, filter PodStateVerification) *ClusterVerification

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Framework) NewTestPod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *Framework) NewTestPod(name string, requests v1.ResourceList, limits v1.ResourceList) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NewTestPod returns a pod that has the specified requests and limits

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*Framework) PatchItems

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (f *Framework) PatchItems(items ...interface{}) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    PatchItems modifies the given items in place such that each test gets its own instances, to avoid conflicts between different tests and between tests and normal deployments.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This is done by: - creating namespaced items inside the test's namespace - changing the name of non-namespaced items like ClusterRole

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    PatchItems has some limitations: - only some common items are supported, unknown ones trigger an error - only the latest stable API version for each item is supported

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Framework) PatchName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (f *Framework) PatchName(item *string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      PatchName makes the name of some item unique by appending the generated unique name.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Framework) PatchNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (f *Framework) PatchNamespace(item *string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        PatchNamespace moves the item into the test's namespace. Not all items can be namespaced. For those, the name also needs to be patched.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*Framework) PodClient

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (f *Framework) PodClient() *PodClient

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Convenience method for getting a pod client interface in the framework's namespace, possibly applying test-suite specific transformations to the pod spec, e.g. for node e2e pod scheduling.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) PodClientNS

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) PodClientNS(namespace string) *PodClient

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Convenience method for getting a pod client interface in an alternative namespace, possibly applying test-suite specific transformations to the pod spec, e.g. for node e2e pod scheduling.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Framework) ReadFileViaContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (f *Framework) ReadFileViaContainer(podName, containerName string, path string) (string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Read a file using kubectl exec cat <path>

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Framework) RecordFlakeIfError

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (f *Framework) RecordFlakeIfError(err error, optionalDescription ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Framework) TestContainerOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (f *Framework) TestContainerOutput(scenarioName string, pod *v1.Pod, containerIndex int, expectedOutput []string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                TestContainerOutput runs the given pod in the given namespace and waits for all of the containers in the podSpec to move into the 'Success' status, and tests the specified container log against the given expected output using a substring matcher.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Framework) TestContainerOutputRegexp

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (f *Framework) TestContainerOutputRegexp(scenarioName string, pod *v1.Pod, containerIndex int, expectedOutput []string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  TestContainerOutputRegexp runs the given pod in the given namespace and waits for all of the containers in the podSpec to move into the 'Success' status, and tests the specified container log against the given expected output using a regexp matcher.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*Framework) WaitForPodNoLongerRunning

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (f *Framework) WaitForPodNoLongerRunning(podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForPodNoLongerRunning waits for the pod to no longer be running in the namespace, for either success or failure.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Framework) WaitForPodNotFound

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (f *Framework) WaitForPodNotFound(podName string, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      WaitForPodNotFound waits for the pod to be completely terminated (not "Get-able").

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Framework) WaitForPodReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (f *Framework) WaitForPodReady(podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForPodReady waits for the pod to flip to ready in the namespace.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*Framework) WaitForPodRunning

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (f *Framework) WaitForPodRunning(podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForPodRunning waits for the pod to run in the namespace.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*Framework) WaitForPodRunningSlow

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (f *Framework) WaitForPodRunningSlow(podName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            WaitForPodRunningSlow waits for the pod to run in the namespace. It has a longer timeout then WaitForPodRunning (util.slowPodStartTimeout).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Framework) WaitForPodTerminated

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (f *Framework) WaitForPodTerminated(podName, reason string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              WaitForPodTerminated waits for the pod to be terminated with the given reason.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Framework) WriteFileViaContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (f *Framework) WriteFileViaContainer(podName, containerName string, path string, contents string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Write a file using kubectl exec echo <contents> > <path> via specified container Because of the primitive technique we're using here, we only allow ASCII alphanumeric characters

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type FrameworkOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type FrameworkOptions struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ClientQPS    float32
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ClientBurst  int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	GroupVersion *schema.GroupVersion
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type HTTPPokeParams

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type HTTPPokeParams struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Timeout        time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ExpectCode     int // default = 200
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	BodyContains   string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	RetriableCodes []int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type HTTPPokeResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type HTTPPokeResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Status HTTPPokeStatus
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Code   int    // HTTP code: 0 if the connection was not made
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Error  error  // if there was any error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Body   []byte // if code != 0
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func PokeHTTP

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func PokeHTTP(host string, port int, path string, params *HTTPPokeParams) HTTPPokeResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  PokeHTTP tries to connect to a host on a port for a given URL path. Callers can specify additional success parameters, if desired.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The result status will be characterized as precisely as possible, given the known users of this.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The result code will be zero in case of any failure to connect, or non-zero if the HTTP transaction completed (even if the other test params make this a failure).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The result error will be populated for any status other than Success.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The result body will be populated if the HTTP transaction was completed, even if the other test params make this a failure).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type HTTPPokeStatus

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type HTTPPokeStatus string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPSuccess HTTPPokeStatus = "Success"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPError   HTTPPokeStatus = "UnknownError"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Any time we add new errors, we should audit all callers of this.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPTimeout     HTTPPokeStatus = "TimedOut"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPRefused     HTTPPokeStatus = "ConnectionRefused"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPRetryCode   HTTPPokeStatus = "RetryCode"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPWrongCode   HTTPPokeStatus = "WrongCode"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	HTTPBadResponse HTTPPokeStatus = "BadResponse"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Histogram

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Histogram struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Labels  map[string]string `json:"labels"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Buckets map[string]int    `json:"buckets"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type HistogramVec

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type HistogramVec []Histogram

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type InvariantFunc

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type InvariantFunc func(older, newer runtime.Object) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ItemFactory

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type ItemFactory interface {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// New returns a new empty item.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	New() runtime.Object
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Create is responsible for creating the item. It returns an
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// error or a cleanup function for the created item.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// If the item is of an unsupported type, it must return
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// an error that has ItemNotSupported as cause.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Create(f *Framework, item interface{}) (func() error, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ItemFactory provides support for creating one particular item. The type gets exported because other packages might want to extend the set of pre-defined factories.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeCluster

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeCluster struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Name    string `yaml:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Cluster struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		CertificateAuthorityData string `yaml:"certificate-authority-data"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Server                   string `yaml:"server"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	} `yaml:"cluster"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Contexts []struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Name    string `yaml:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Context struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    			Cluster string `yaml:"cluster"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    			User    string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		} `yaml:"context"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	} `yaml:"contexts"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Clusters []KubeCluster `yaml:"clusters"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Users []KubeUser `yaml:"users"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*KubeConfig) FindCluster

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (kc *KubeConfig) FindCluster(name string) *KubeCluster

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*KubeConfig) FindUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (kc *KubeConfig) FindUser(name string) *KubeUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeUser

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeUser struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Name string `yaml:"name"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	User struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Username string `yaml:"username"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Password string `yaml:"password"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    		Token    string `yaml:"token"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	} `yaml:"user"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeletLatencyMetric

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type KubeletLatencyMetric struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// eg: list, info, create
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Operation string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// eg: sync_pods, pod_worker
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Method string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// 0 <= quantile <=1, e.g. 0.95 is 95%tile, 0.5 is median.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Quantile float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Latency  time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      KubeletMetric stores metrics scraped from the kubelet server's /metric endpoint. TODO: Get some more structure around the metrics and this type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type KubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type KubeletLatencyMetrics []KubeletLatencyMetric

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        KubeletMetricByLatency implements sort.Interface for []KubeletMetric based on the latency field.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func GetDefaultKubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func GetDefaultKubeletLatencyMetrics(ms metrics.KubeletMetrics) KubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GetDefaultKubeletLatencyMetrics calls GetKubeletLatencyMetrics with a set of default metricNames identifying common latency metrics. Note that the KubeletMetrics passed in should not contain subsystem prefix.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func GetKubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func GetKubeletLatencyMetrics(ms metrics.KubeletMetrics, filterMetricNames sets.String) KubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GetKubeletLatencyMetrics filters ms to include only those contained in the metricNames set, then constructs a KubeletLatencyMetrics list based on the samples associated with those metrics.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func HighLatencyKubeletOperations

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration, nodeName string, logFunc func(fmt string, args ...interface{})) (KubeletLatencyMetrics, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              HighLatencyKubeletOperations logs and counts the high latency metrics exported by the kubelet server via /metrics.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (KubeletLatencyMetrics) Len

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (a KubeletLatencyMetrics) Len() int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (KubeletLatencyMetrics) Less

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (a KubeletLatencyMetrics) Less(i, j int) bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (KubeletLatencyMetrics) Swap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (a KubeletLatencyMetrics) Swap(i, j int)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type KubemarkResourceUsage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type KubemarkResourceUsage struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Name                    string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	MemoryWorkingSetInBytes uint64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	CPUUsageInCores         float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type LatencyMetric

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type LatencyMetric struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Perc50  time.Duration `json:"Perc50"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Perc90  time.Duration `json:"Perc90"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Perc99  time.Duration `json:"Perc99"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	Perc100 time.Duration `json:"Perc100"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Dashboard metrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func ExtractLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func ExtractLatencyMetrics(latencies []PodLatencyData) LatencyMetric

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LatencySlice

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LatencySlice []PodLatencyData

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (LatencySlice) Len

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (a LatencySlice) Len() int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (LatencySlice) Less

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (a LatencySlice) Less(i, j int) bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (LatencySlice) Swap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (a LatencySlice) Swap(i, j int)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LogSizeDataTimeseries

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LogSizeDataTimeseries map[string]map[string][]TimestampedSize

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type LogSizeGatherer

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  LogSizeGatherer is a worker which grabs a WorkItem from the channel and does assigned work.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*LogSizeGatherer) Run

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (g *LogSizeGatherer) Run()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*LogSizeGatherer) Work

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (g *LogSizeGatherer) Work() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Work does a single unit of work: tries to take out a WorkItem from the queue, ssh-es into a given machine, gathers data, writes it to the shared <data> map, and creates a gorouting which reinserts work item into the queue with a <pollingPeriod> delay. Returns false if worker should exit.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type LogsSizeData

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*LogsSizeData) AddNewData

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (d *LogsSizeData) AddNewData(ip, path string, timestamp time.Time, size int)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type LogsSizeDataSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type LogsSizeDataSummary map[string]map[string]SingleLogSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      node -> file -> data

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*LogsSizeDataSummary) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (s *LogsSizeDataSummary) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        TODO: make sure that we don't need locking here

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*LogsSizeDataSummary) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (s *LogsSizeDataSummary) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*LogsSizeDataSummary) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (s *LogsSizeDataSummary) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type LogsSizeVerifier

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          LogsSizeVerifier gathers data about log files sizes from master and node machines. It oversees a <workersNo> workers which do the gathering.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewLogsVerifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewLogsVerifier(c clientset.Interface, stopChannel chan bool) *LogsSizeVerifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NewLogsVerifier creates a new LogsSizeVerifier which will stop when stopChannel is closed

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*LogsSizeVerifier) GetSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (s *LogsSizeVerifier) GetSummary() *LogsSizeDataSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GetSummary returns a summary (average generation rate and number of probes) of the data gathered by LogSizeVerifier

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*LogsSizeVerifier) Run

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (v *LogsSizeVerifier) Run()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Run starts log size gathering. It starts a gorouting for every worker and then blocks until stopChannel is closed

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MetricsForE2E

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type MetricsForE2E metrics.Collection

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*MetricsForE2E) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (m *MetricsForE2E) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*MetricsForE2E) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (m *MetricsForE2E) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*MetricsForE2E) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (m *MetricsForE2E) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NetworkingTestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NetworkingTestConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// TestContaienrPod is a test pod running the netexec image. It is capable
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// of executing tcp/udp requests against ip:port.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	TestContainerPod *v1.Pod
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// HostTestContainerPod is a pod running using the hostexec image.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	HostTestContainerPod *v1.Pod
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// if the HostTestContainerPod is running with HostNetwork=true.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	HostNetwork bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// EndpointPods are the pods belonging to the Service created by this
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// test config. Each invocation of `setup` creates a service with
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// 1 pod per node running the netexecImage.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	EndpointPods []*v1.Pod
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// NodePortService is a Service with Type=NodePort spanning over all
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// endpointPods.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	NodePortService *v1.Service
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// SessionAffinityService is a Service with SessionAffinity=ClientIP
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// spanning over all endpointPods.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	SessionAffinityService *v1.Service
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// ExternalAddrs is a list of external IPs of nodes in the cluster.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ExternalAddrs []string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// Nodes is a list of nodes in the cluster.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Nodes []v1.Node
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// MaxTries is the number of retries tolerated for tests run against
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// endpoints and services created by this config.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	MaxTries int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// The ClusterIP of the Service reated by this test config.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	ClusterIP string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// External ip of first node for use in nodePort testing.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	NodeIP string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// The http/udp nodePorts of the Service.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	NodeHttpPort int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	NodeUdpPort  int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// The kubernetes namespace within which all resources for this
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// config are created
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	Namespace string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NetworkingTestConfig is a convenience class around some utility methods for testing kubeproxy/networking/services/endpoints.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func NewCoreNetworkingTestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func NewCoreNetworkingTestConfig(f *Framework, hostNetwork bool) *NetworkingTestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    NewNetworkingTestNodeE2EConfig creates and sets up a new test config helper for Node E2E.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewNetworkingTestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewNetworkingTestConfig(f *Framework) *NetworkingTestConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NewNetworkingTestConfig creates and sets up a new test config helper.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*NetworkingTestConfig) DeleteNetProxyPod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (config *NetworkingTestConfig) DeleteNetProxyPod()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*NetworkingTestConfig) DeleteNodePortService

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (config *NetworkingTestConfig) DeleteNodePortService()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*NetworkingTestConfig) DialFromContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (config *NetworkingTestConfig) DialFromContainer(protocol, containerIP, targetIP string, containerHttpPort, targetPort, maxTries, minTries int, expectedEps sets.String)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        DialFromContainers executes a curl via kubectl exec in a test container, which might then translate to a tcp or udp request based on the protocol argument in the url. - minTries is the minimum number of curl attempts required before declaring

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        success. Set to 0 if you'd like to return as soon as all endpoints respond
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        at least once.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - maxTries is the maximum number of curl attempts. If this many attempts pass

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        and we don't see all expected endpoints, the test fails.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - expectedEps is the set of endpointnames to wait for. Typically this is also

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        the hostname reported by each pod in the service through /hostName.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        maxTries == minTries will confirm that we see the expected endpoints and no more for maxTries. Use this if you want to eg: fail a readiness check on a pod and confirm it doesn't show up as an endpoint.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*NetworkingTestConfig) DialFromEndpointContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (config *NetworkingTestConfig) DialFromEndpointContainer(protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*NetworkingTestConfig) DialFromNode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (config *NetworkingTestConfig) DialFromNode(protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          DialFromNode executes a tcp or udp request based on protocol via kubectl exec in a test container running with host networking. - minTries is the minimum number of curl attempts required before declaring

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          success. Set to 0 if you'd like to return as soon as all endpoints respond
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          at least once.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - maxTries is the maximum number of curl attempts. If this many attempts pass

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          and we don't see all expected endpoints, the test fails.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          maxTries == minTries will confirm that we see the expected endpoints and no more for maxTries. Use this if you want to eg: fail a readiness check on a pod and confirm it doesn't show up as an endpoint.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*NetworkingTestConfig) DialFromTestContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (config *NetworkingTestConfig) DialFromTestContainer(protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*NetworkingTestConfig) EndpointHostnames

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (config *NetworkingTestConfig) EndpointHostnames() sets.String

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            EndpointHostnames returns a set of hostnames for existing endpoints.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*NetworkingTestConfig) GetEndpointsFromContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containerIP, targetIP string, containerHttpPort, targetPort, tries int) (sets.String, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GetEndpointsFromContainer executes a curl via kubectl exec in a test container, which might then translate to a tcp or udp request based on the protocol argument in the url. It returns all different endpoints from multiple retries. - tries is the number of curl attempts. If this many attempts pass and

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              we don't see any endpoints, the test fails.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*NetworkingTestConfig) GetEndpointsFromTestContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (config *NetworkingTestConfig) GetEndpointsFromTestContainer(protocol, targetIP string, targetPort, tries int) (sets.String, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*NetworkingTestConfig) GetSelfURL

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (config *NetworkingTestConfig) GetSelfURL(port int32, path string, expected string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GetSelfURL executes a curl against the given path via kubectl exec into a test container running with host networking, and fails if the output doesn't match the expected string.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*NetworkingTestConfig) GetSelfURLStatusCode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (config *NetworkingTestConfig) GetSelfURLStatusCode(port int32, path string, expected string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GetSelfStatusCode executes a curl against the given path via kubectl exec into a test container running with host networking, and fails if the returned status code doesn't match the expected string.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type NodeKiller

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    NodeKiller is a utility to simulate node failures.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewNodeKiller

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NewNodeKiller(config NodeKillerConfig, client clientset.Interface, provider string) *NodeKiller

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NewNodeKiller creates new NodeKiller.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*NodeKiller) Run

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (k *NodeKiller) Run(stopCh <-chan struct{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Run starts NodeKiller until stopCh is closed.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type NodeKillerConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type NodeKillerConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Enabled determines whether NodeKill should do anything at all.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// All other options below are ignored if Enabled = false.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Enabled bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// FailureRatio is a percentage of all nodes that could fail simultinously.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	FailureRatio float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Interval is time between node failures.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Interval time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// JitterFactor is factor used to jitter node failures.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// Node will be killed between [Interval, Interval + (1.0 + JitterFactor)].
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	JitterFactor float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// SimulatedDowntime is a duration between node is killed and recreated.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	SimulatedDowntime time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          NodeKillerConfig describes configuration of NodeKiller -- a utility to simulate node failures.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type NodeRuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type NodeRuntimeOperationErrorRate map[string]*RuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NodeRuntimeOperationErrorRate is the runtime operation error rate on one node.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type NodeTestContextType

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type NodeTestContextType struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// NodeE2E indicates whether it is running node e2e.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	NodeE2E bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Name of the node to run tests on.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	NodeName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// NodeConformance indicates whether the test is running in node conformance mode.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	NodeConformance bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// PrepullImages indicates whether node e2e framework should prepull images.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	PrepullImages bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// KubeletConfig is the kubelet configuration the test is running against.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	KubeletConfig kubeletconfig.KubeletConfiguration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// ImageDescription is the description of the image on which the test is running.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ImageDescription string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// SystemSpecName is the name of the system spec (e.g., gke) that's used in
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// the node e2e test. If empty, the default one (system.DefaultSpec) is
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// used. The system specs are in test/e2e_node/system/specs/.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	SystemSpecName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// ExtraEnvs is a map of environment names to values.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ExtraEnvs map[string]string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              NodeTestContextType is part of TestContextType, it is shared by all node e2e test.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type NodesCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type NodesCPUSummary map[string]ContainersCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                NodesCPUSummary is indexed by the node name with each entry a ContainersCPUSummary map.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NodesSet

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NodesSet int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	AllNodes          NodesSet = 0 // All containers on all nodes
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	MasterNodes       NodesSet = 1 // All containers on Master nodes only
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	MasterAndDNSNodes NodesSet = 2 // All containers on Master nodes and DNS containers on other nodes
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NullProvider

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                type NullProvider struct{}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NullProvider is the default implementation of the ProviderInterface which doesn't do anything.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) CleanupServiceResources

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) CreatePD

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) CreatePD(zone string) (string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) CreatePVSource

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) CreatePVSource(zone, diskName string) (*v1.PersistentVolumeSource, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) DeleteNode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) DeleteNode(node *v1.Node) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) DeletePD

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) DeletePD(pdName string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) DeletePVSource

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) DeletePVSource(pvSource *v1.PersistentVolumeSource) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) EnableAndDisableInternalLB

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) EnableAndDisableInternalLB() (enable, disable func(svc *v1.Service))

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) EnsureLoadBalancerResourcesDeleted

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) EnsureLoadBalancerResourcesDeleted(ip, portRange string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) FrameworkAfterEach

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) FrameworkAfterEach(f *Framework)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) FrameworkBeforeEach

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) FrameworkBeforeEach(f *Framework)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) GetGroupNodes

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) GetGroupNodes(group string) ([]string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) GroupSize

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) GroupSize(group string) (int, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) LoadBalancerSrcRanges

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) LoadBalancerSrcRanges() []string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (NullProvider) ResizeGroup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (n NullProvider) ResizeGroup(string, int32) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PVCMap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PVCMap map[types.NamespacedName]pvcval

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PVMap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PVMap map[string]pvval

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PersistentVolumeClaimConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PersistentVolumeClaimConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	AccessModes      []v1.PersistentVolumeAccessMode
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Annotations      map[string]string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Selector         *metav1.LabelSelector
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	StorageClassName *string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	VolumeMode       *v1.PersistentVolumeMode
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PersistentVolumeConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PersistentVolumeConfig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	PVSource         v1.PersistentVolumeSource
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Prebind          *v1.PersistentVolumeClaim
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ReclaimPolicy    v1.PersistentVolumeReclaimPolicy
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	NamePrefix       string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Labels           labels.Set
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	StorageClassName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	NodeAffinity     *v1.VolumeNodeAffinity
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	VolumeMode       *v1.PersistentVolumeMode
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    PersistentVolumeConfig is consumed by MakePersistentVolume() to generate a PV object for varying storage options (NFS, ceph, glusterFS, etc.). (+optional) prebind holds a pre-bound PVC Example pvSource:

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    pvSource: api.PersistentVolumeSource{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	NFS: &api.NFSVolumeSource{
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     		...
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     	},
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PingCommand

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PingCommand string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    const (
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	IPv4PingCommand PingCommand = "ping"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	IPv6PingCommand PingCommand = "ping6"
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PodClient

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PodClient struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	v1core.PodInterface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*PodClient) Create

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (c *PodClient) Create(pod *v1.Pod) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Create creates a new pod according to the framework specifications (don't wait for it to start).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*PodClient) CreateBatch

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (c *PodClient) CreateBatch(pods []*v1.Pod) []*v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CreateBatch create a batch of pods. All pods are created before waiting.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*PodClient) CreateEventually

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (c *PodClient) CreateEventually(pod *v1.Pod, opts ...interface{}) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          CreateEventually retries pod creation for a while before failing the test with the most recent error. This mimicks the behavior of a controller (like the one for DaemonSet) and is necessary because pod creation can fail while its service account is still getting provisioned (https://github.com/kubernetes/kubernetes/issues/68776).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Both the timeout and polling interval are configurable as optional arguments: - The first optional argument is the timeout. - The second optional argument is the polling interval.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Both intervals can either be specified as time.Duration, parsable duration strings or as floats/integers. In the last case they are interpreted as seconds.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*PodClient) CreateSync

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (c *PodClient) CreateSync(pod *v1.Pod) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CreateSync creates a new pod according to the framework specifications, and wait for it to start.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*PodClient) CreateSyncInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (c *PodClient) CreateSyncInNamespace(pod *v1.Pod, namespace string) *v1.Pod

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CreateSync creates a new pod according to the framework specifications in the given namespace, and waits for it to start.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*PodClient) DeleteSync

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (c *PodClient) DeleteSync(name string, options *metav1.DeleteOptions, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                DeleteSync deletes the pod and wait for the pod to disappear for `timeout`. If the pod doesn't disappear before the timeout, it will fail the test.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*PodClient) DeleteSyncInNamespace

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (c *PodClient) DeleteSyncInNamespace(name string, namespace string, options *metav1.DeleteOptions, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DeleteSyncInNamespace deletes the pod from the namespace and wait for the pod to disappear for `timeout`. If the pod doesn't disappear before the timeout, it will fail the test.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*PodClient) MatchContainerOutput

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (c *PodClient) MatchContainerOutput(name string, containerName string, expectedRegexp string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    MatchContainerOutput gets output of a container and match expected regexp in the output.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*PodClient) PodIsReady

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (c *PodClient) PodIsReady(name string) bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*PodClient) Update

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (c *PodClient) Update(name string, updateFn func(pod *v1.Pod))

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Update updates the pod object. It retries if there is a conflict, throw out error if there is any other errors. name is the pod name, updateFn is the function updating the pod object.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*PodClient) WaitForErrorEventOrSuccess

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (c *PodClient) WaitForErrorEventOrSuccess(pod *v1.Pod) (*v1.Event, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        WaitForSuccess waits for pod to succeed or an error event for that pod.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*PodClient) WaitForFailure

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (c *PodClient) WaitForFailure(name string, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          WaitForFailure waits for pod to fail.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*PodClient) WaitForSuccess

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (c *PodClient) WaitForSuccess(name string, timeout time.Duration)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TODO(random-liu): Move pod wait function into this file WaitForSuccess waits for pod to succeed.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type PodLatencyData

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type PodLatencyData struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Name of the pod
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Name string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Node this pod was running on
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Node string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	// Latency information related to pod startuptime
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	Latency time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              PodLatencyData encapsulates pod startup latency information.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PodStartupLatency

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PodStartupLatency struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	CreateToScheduleLatency LatencyMetric `json:"createToScheduleLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ScheduleToRunLatency    LatencyMetric `json:"scheduleToRunLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	RunToWatchLatency       LatencyMetric `json:"runToWatchLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ScheduleToWatchLatency  LatencyMetric `json:"scheduleToWatchLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	E2ELatency              LatencyMetric `json:"e2eLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*PodStartupLatency) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (l *PodStartupLatency) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*PodStartupLatency) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (l *PodStartupLatency) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*PodStartupLatency) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (l *PodStartupLatency) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PodStateVerification

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type PodStateVerification struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Optional: only pods that have k=v labels will pass this filter.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Selectors map[string]string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Required: The phases which are valid for your pod.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ValidPhases []v1.PodPhase
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Optional: only pods passing this function will pass the filter
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Verify a pod.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// As an optimization, in addition to specifying filter (boolean),
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// this function allows specifying an error as well.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// The error indicates that the polling of the pod spectrum should stop.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Verify func(v1.Pod) (bool, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// Optional: only pods with this name will pass the filter.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	PodName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    PodStateVerification represents a verification of pod state. Any time you have a set of pods that you want to operate against or query, this struct can be used to declaratively identify those pods.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PortsByPodName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PortsByPodName map[string][]int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PortsByPodUID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type PortsByPodUID map[types.UID][]int

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func GetContainerPortsByPodUID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func GetContainerPortsByPodUID(endpoints *v1.Endpoints) PortsByPodUID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ProviderInterface

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type ProviderInterface interface {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	FrameworkBeforeEach(f *Framework)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	FrameworkAfterEach(f *Framework)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	ResizeGroup(group string, size int32) error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	GetGroupNodes(group string) ([]string, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	GroupSize(group string) (int, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	DeleteNode(node *v1.Node) error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	CreatePD(zone string) (string, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	DeletePD(pdName string) error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	CreatePVSource(zone, diskName string) (*v1.PersistentVolumeSource, error)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	DeletePVSource(pvSource *v1.PersistentVolumeSource) error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	EnsureLoadBalancerResourcesDeleted(ip, portRange string) error
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	LoadBalancerSrcRanges() []string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	EnableAndDisableInternalLB() (enable, disable func(svc *v1.Service))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ProviderInterface contains the implementation for certain provider-specific functionality.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func SetupProviderConfig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func SetupProviderConfig(providerName string) (ProviderInterface, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        SetupProviderConfig validates the chosen provider and creates an interface instance for it.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResourceConstraint

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResourceConstraint struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	CPUConstraint    float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	MemoryConstraint uint64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResourceGathererOptions

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResourceGathererOptions struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	InKubemark                  bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Nodes                       NodesSet
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ResourceDataGatheringPeriod time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ProbeDuration               time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	PrintVerboseLogs            bool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type ResourceMonitor

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ResourceMonitor manages a resourceCollector per node.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewResourceMonitor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewResourceMonitor(c clientset.Interface, containerNames []string, pollingInterval time.Duration) *ResourceMonitor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) FormatCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) FormatCPUSummary(summary NodesCPUSummary) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) FormatResourceUsage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) FormatResourceUsage(s ResourceUsagePerNode) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) GetCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) GetCPUSummary() NodesCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) GetLatest

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) GetLatest() (ResourceUsagePerNode, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) GetMasterNodeCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) GetMasterNodeCPUSummary(summaryPerNode NodesCPUSummary) NodesCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) GetMasterNodeLatest

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) GetMasterNodeLatest(usagePerNode ResourceUsagePerNode) ResourceUsagePerNode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) LogCPUSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) LogCPUSummary()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) LogLatest

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) LogLatest()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) Reset

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) Reset()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) Start

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) Start()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*ResourceMonitor) Stop

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (r *ResourceMonitor) Stop()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsagePerContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsagePerContainer map[string]*ContainerResourceUsage

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsagePerNode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsagePerNode map[string]ResourceUsagePerContainer

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsageSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          type ResourceUsageSummary map[string][]SingleContainerSummary

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            we can't have int here, as JSON does not accept integer keys.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*ResourceUsageSummary) PrintHumanReadable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (s *ResourceUsageSummary) PrintHumanReadable() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*ResourceUsageSummary) PrintJSON

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (s *ResourceUsageSummary) PrintJSON() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*ResourceUsageSummary) SummaryKind

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (s *ResourceUsageSummary) SummaryKind() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            type RuntimeOperationErrorRate struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	TotalNumber float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	ErrorRate   float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            	TimeoutRate float64
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              RuntimeOperationErrorRate is the error rate of a specified runtime operation.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type RuntimeOperationMonitor

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                RuntimeOperationMonitor is the tool getting and parsing docker operation metrics.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewRuntimeOperationMonitor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewRuntimeOperationMonitor(c clientset.Interface) *RuntimeOperationMonitor

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (m *RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate() map[string]NodeRuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GetLatestRuntimeOperationErrorRate gets latest error rate and timeout rate from last observed RuntimeOperationErrorRate.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*RuntimeOperationMonitor) GetRuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (m *RuntimeOperationMonitor) GetRuntimeOperationErrorRate() map[string]NodeRuntimeOperationErrorRate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GetRuntimeOperationErrorRate gets runtime operation records from kubelet metrics and calculate error rates of all runtime operations.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SSHResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type SSHResult struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	User   string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Host   string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Cmd    string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Stdout string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Stderr string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Code   int
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func IssueSSHCommandWithResult

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func IssueSSHCommandWithResult(cmd, provider string, node *v1.Node) (*SSHResult, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NodeExec

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func NodeExec(nodeName, cmd string) (SSHResult, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NodeExec execs the given cmd on node via SSH. Note that the nodeName is an sshable name, eg: the name returned by framework.GetMasterHost(). This is also not guaranteed to work across cloud providers since it involves ssh.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func SSH

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func SSH(cmd, host, provider string) (SSHResult, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        SSH synchronously SSHs to a node running on provider and runs cmd. If there is no error performing the SSH, the stdout, stderr, and exit code are returned.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SaturationTime

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SaturationTime struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	TimeToSaturate time.Duration `json:"timeToSaturate"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	NumberOfNodes  int           `json:"numberOfNodes"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	NumberOfPods   int           `json:"numberOfPods"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Throughput     float32       `json:"throughput"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SchedulingMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SchedulingMetrics struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	PredicateEvaluationLatency  LatencyMetric `json:"predicateEvaluationLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	PriorityEvaluationLatency   LatencyMetric `json:"priorityEvaluationLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	PreemptionEvaluationLatency LatencyMetric `json:"preemptionEvaluationLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	BindingLatency              LatencyMetric `json:"bindingLatency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ThroughputAverage           float64       `json:"throughputAverage"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	ThroughputPerc50            float64       `