Documentation

Index

Constants

View Source
const (
	FirewallTimeoutDefault = 3 * time.Minute
	FirewallTestTcpTimeout = time.Duration(1 * time.Second)
	// Set ports outside of 30000-32767, 80 and 8080 to avoid being whitelisted by the e2e cluster
	FirewallTestHttpPort = int32(29999)
	FirewallTestUdpPort  = int32(29998)
)
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 (

	// Ingress class annotation defined in ingress repository.
	// TODO: All these annotations should be reused from
	// ingress-gce/pkg/annotations instead of duplicating them here.
	IngressClassKey = "kubernetes.io/ingress.class"

	// Ingress class annotation value for multi cluster ingress.
	MulticlusterIngressClassValue = "gce-multi-cluster"

	// Static IP annotation defined in ingress repository.
	IngressStaticIPKey = "kubernetes.io/ingress.global-static-ip-name"

	// Allow HTTP annotation defined in ingress repository.
	IngressAllowHTTPKey = "kubernetes.io/ingress.allow-http"

	// Pre-shared-cert annotation defined in ingress repository.
	IngressPreSharedCertKey = "ingress.gcp.kubernetes.io/pre-shared-cert"

	// ServiceApplicationProtocolKey annotation defined in ingress repository.
	ServiceApplicationProtocolKey = "service.alpha.kubernetes.io/app-protocols"

	// IngressManifestPath is the parent path to yaml test manifests.
	IngressManifestPath = "test/e2e/testing-manifests/ingress"

	// IngressReqTimeout is the timeout on a single http request.
	IngressReqTimeout = 10 * time.Second
)
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
)
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

	// 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 = 1 * 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

	// 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

	// ImagePrePullingTimeout is the time we wait for the e2e-image-puller
	// static pods to pull the list of seeded images. If they don't pull
	// images within this time we simply log their output and carry on
	// with the tests.
	ImagePrePullingTimeout = 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.
	VolumeServerPodStartupSleep = 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 DefaultPodDeletionTimeout = 3 * time.Minute
    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 = "busybox"
    	// Label allocated to the image puller static pod that runs on each node
    	// before e2es.
    	ImagePullerLabels = map[string]string{"name": "e2e-image-puller"}
    
    	// Serve hostname image name
    	ServeHostnameImage = imageutils.GetE2EImage(imageutils.ServeHostname)
    )
    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_count",
      	"apiserver_request_latencies_summary",
      	"etcd_helper_cache_entry_count",
      	"etcd_helper_cache_hit_count",
      	"etcd_helper_cache_miss_count",
      	"etcd_request_cache_add_latencies_summary",
      	"etcd_request_cache_get_latencies_summary",
      	"etcd_request_latencies_summary",
      }
      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_latency_microseconds",
      	"kubelet_generate_pod_status_latency_microseconds",
      	"kubelet_pod_start_latency_microseconds",
      	"kubelet_pod_worker_latency_microseconds",
      	"kubelet_pod_worker_start_latency_microseconds",
      	"kubelet_sync_pods_latency_microseconds",
      }
      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 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 BuildInsecureClient

                              func BuildInsecureClient(timeout time.Duration) *http.Client

                                BuildInsecureClient returns an insecure http client. Can be used for "curl -k".

                                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 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 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 CleanupGCEResources

                                                          func CleanupGCEResources(c clientset.Interface, loadBalancerName, region, zone string) (retErr error)

                                                            CleanupGCEResources cleans up GCE Service Type=LoadBalancer resources with the given name. The name is usually the UUID of the Service prefixed with an alpha-numeric character ('a') to work around cloudprovider rules.

                                                            func CleanupReencryptionIngress

                                                            func CleanupReencryptionIngress(cs clientset.Interface, deploy *extensions.Deployment, svc *v1.Service, ing *extensions.Ingress) []error

                                                            func CleanupServiceGCEResources

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

                                                            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 ConstructFirewallForLBService

                                                              func ConstructFirewallForLBService(svc *v1.Service, nodeTag string) *compute.Firewall

                                                                ConstructFirewallForLBService returns the expected GCE firewall rule for a loadbalancer type service

                                                                func ConstructHealthCheckFirewallForLBService

                                                                func ConstructHealthCheckFirewallForLBService(clusterID string, svc *v1.Service, nodeTag string, isNodesHealthCheck bool) *compute.Firewall

                                                                  ConstructHealthCheckFirewallForLBService returns the expected GCE firewall rule for a loadbalancer type service

                                                                  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) (*extensions.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 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 CreateReencryptionIngress

                                                                                        func CreateReencryptionIngress(cs clientset.Interface, namespace string) (*extensions.Deployment, *v1.Service, *extensions.Ingress, error)

                                                                                        func CreateSecPod

                                                                                        func CreateSecPod(client clientset.Interface, namespace string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, command string, hostIPC bool, hostPID bool, seLinuxLabel *v1.SELinuxOptions) (*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 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 DeleteRCAndPods

                                                                                                                    func DeleteRCAndPods(clientset clientset.Interface, internalClientset internalclientset.Interface, ns, name string) error

                                                                                                                    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 DeleteResourceAndPods

                                                                                                                      func DeleteResourceAndPods(clientset clientset.Interface, internalClientset internalclientset.Interface, kind schema.GroupKind, ns, name string) error

                                                                                                                        DeleteResourceAndPods deletes a given resource and all pods it spawned

                                                                                                                        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 DescribeSvc

                                                                                                                          func DescribeSvc(ns string)

                                                                                                                          func DsFromManifest

                                                                                                                          func DsFromManifest(url string) (*extensions.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: GCE/GKE and Azure

                                                                                                                              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 GatherApiserverCPUProfile

                                                                                                                                        func GatherApiserverCPUProfile(wg *sync.WaitGroup, profileBaseName string)

                                                                                                                                        func GatherApiserverCPUProfileForNSeconds

                                                                                                                                        func GatherApiserverCPUProfileForNSeconds(wg *sync.WaitGroup, profileBaseName string, n int)

                                                                                                                                        func GatherApiserverMemoryProfile

                                                                                                                                        func GatherApiserverMemoryProfile(wg *sync.WaitGroup, profileBaseName string)

                                                                                                                                        func GcloudComputeResourceCreate

                                                                                                                                        func GcloudComputeResourceCreate(resource, name, project string, args ...string) error

                                                                                                                                          GcloudComputeResourceCreate creates a compute resource with a name and arguments.

                                                                                                                                          func GcloudComputeResourceDelete

                                                                                                                                          func GcloudComputeResourceDelete(resource, name, project string, args ...string) error

                                                                                                                                            GcloudComputeResourceDelete deletes the specified compute resource by name and project.

                                                                                                                                            func GenerateMasterRegexp

                                                                                                                                            func GenerateMasterRegexp(prefix string) string

                                                                                                                                            func GenerateRSACerts

                                                                                                                                            func GenerateRSACerts(host string, isCA bool) ([]byte, []byte, error)

                                                                                                                                              GenerateRSACerts generates a basic self signed certificate using a key length of rsaBits, valid for validFor time.

                                                                                                                                              func GenerateReencryptionDeploymentSpec

                                                                                                                                              func GenerateReencryptionDeploymentSpec() *extensions.Deployment

                                                                                                                                              func GenerateReencryptionIngressSpec

                                                                                                                                              func GenerateReencryptionIngressSpec() *extensions.Ingress

                                                                                                                                              func GenerateReencryptionServiceSpec

                                                                                                                                              func GenerateReencryptionServiceSpec() *v1.Service

                                                                                                                                              func GetAzureCloud

                                                                                                                                              func GetAzureCloud() (*azure.Cloud, error)

                                                                                                                                                GetAzureCloud returns azure cloud provider

                                                                                                                                                func GetClusterID

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

                                                                                                                                                func GetClusterName

                                                                                                                                                func GetClusterName(instancePrefix string) string

                                                                                                                                                  GetClusterName returns the CLUSTER_NAME env we set for e2e cluster. From cluster/gce/config-test.sh, cluster name is set up using below format: CLUSTER_NAME="${CLUSTER_NAME:-${INSTANCE_PREFIX}}"

                                                                                                                                                  func GetClusterZones

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

                                                                                                                                                  func GetE2eFirewalls

                                                                                                                                                  func GetE2eFirewalls(masterName, masterTag, nodeTag, network, clusterIpRange string) []*compute.Firewall

                                                                                                                                                    GetE2eFirewalls returns all firewall rules we create for an e2e cluster. From cluster/gce/util.sh, all firewall rules should be consistent with the ones created by startup scripts.

                                                                                                                                                    func GetGCECloud

                                                                                                                                                    func GetGCECloud() (*gcecloud.GCECloud, error)

                                                                                                                                                    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 GetInstancePrefix

                                                                                                                                                      func GetInstancePrefix(masterName string) (string, error)

                                                                                                                                                        GetInstancePrefix returns the INSTANCE_PREFIX env we set for e2e cluster. From cluster/gce/config-test.sh, master name is set up using below format: MASTER_NAME="${INSTANCE_PREFIX}-master"

                                                                                                                                                        func GetInstanceTags

                                                                                                                                                        func GetInstanceTags(cloudConfig CloudConfig, instanceName string) *compute.Tags

                                                                                                                                                          GetInstanceTags gets tags from GCE instance with given name.

                                                                                                                                                          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 GetMasterAddress

                                                                                                                                                                      func GetMasterAddress(c clientset.Interface) string

                                                                                                                                                                        GetMasterAddress returns the hostname/external IP/internal IP as appropriate for e2e tests on a particular provider which is the address of the interface used for communication with the kubelet.

                                                                                                                                                                        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

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

                                                                                                                                                                            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 GetNodeTags

                                                                                                                                                                              func GetNodeTags(c clientset.Interface, cloudConfig CloudConfig) []string

                                                                                                                                                                                GetNodeTags gets k8s node tag from one of the nodes

                                                                                                                                                                                func GetPauseImageName

                                                                                                                                                                                func GetPauseImageName(c clientset.Interface) string

                                                                                                                                                                                  GetPauseImageName fetches the pause image name for the same architecture as the apiserver.

                                                                                                                                                                                  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 *extensions.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 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 GroupSize

                                                                                                                                                                                              func GroupSize(group string) (int, error)

                                                                                                                                                                                              func IngressUpgrade

                                                                                                                                                                                              func IngressUpgrade(isUpgrade bool) error

                                                                                                                                                                                              func InjectHtml

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

                                                                                                                                                                                                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 IsGoogleAPIHTTPErrorCode

                                                                                                                                                                                                func IsGoogleAPIHTTPErrorCode(err error, code int) bool

                                                                                                                                                                                                  IsHTTPErrorCode returns true if the error is a google api error matching the corresponding HTTP error code.

                                                                                                                                                                                                  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 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) *extensions.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 MakeFirewallNameForLBService

                                                                                                                                                                                                                          func MakeFirewallNameForLBService(name string) string

                                                                                                                                                                                                                            MakeFirewallNameForLBService return the expected firewall name for a LB service. This should match the formatting of makeFirewallName() in pkg/cloudprovider/providers/gce/gce_loadbalancer.go

                                                                                                                                                                                                                            func MakeHealthCheckFirewallNameForLBService

                                                                                                                                                                                                                            func MakeHealthCheckFirewallNameForLBService(clusterID, name string, isNodesHealthCheck bool) string

                                                                                                                                                                                                                            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) *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(ns string) *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 extensions.DeploymentStrategyType) *extensions.Deployment

                                                                                                                                                                                                                                            func NewE2ETestNodePreparer

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

                                                                                                                                                                                                                                            func NewHostExecPodSpec

                                                                                                                                                                                                                                            func NewHostExecPodSpec(ns, name string) *v1.Pod

                                                                                                                                                                                                                                              NewHostExecPodSpec 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) *extensions.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) (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. It returns an error if it can't find an external IP for every node, 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 PackProtocolsPortsFromFirewall

                                                                                                                                                                                                                                                                          func PackProtocolsPortsFromFirewall(alloweds []*compute.FirewallAllowed) []string

                                                                                                                                                                                                                                                                            PackProtocolsPortsFromFirewall packs protocols and ports in an unified way for verification.

                                                                                                                                                                                                                                                                            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 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) *extensionsv1beta1.PodSecurityPolicy

                                                                                                                                                                                                                                                                                      Creates a PodSecurityPolicy that allows everything.

                                                                                                                                                                                                                                                                                      func ProviderIs

                                                                                                                                                                                                                                                                                      func ProviderIs(providers ...string) bool

                                                                                                                                                                                                                                                                                      func ProxyMode

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

                                                                                                                                                                                                                                                                                      func RcByNameContainer

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

                                                                                                                                                                                                                                                                                        RcByNameContainer returns a ReplicationControoler 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 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 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 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 RunRC

                                                                                                                                                                                                                                                                                                                                func RunRC(config testutils.RCConfig) error

                                                                                                                                                                                                                                                                                                                                func RunReplicaSet

                                                                                                                                                                                                                                                                                                                                func RunReplicaSet(config testutils.ReplicaSetConfig) error

                                                                                                                                                                                                                                                                                                                                func SameStringArray

                                                                                                                                                                                                                                                                                                                                func SameStringArray(result, expected []string, include bool) error

                                                                                                                                                                                                                                                                                                                                  SameStringArray verifies whether two string arrays have the same strings, return error if not. Order does not matter. When `include` is set to true, verifies whether result includes all elements from expected.

                                                                                                                                                                                                                                                                                                                                  func ScaleDeployment

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

                                                                                                                                                                                                                                                                                                                                  func ScaleRC

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

                                                                                                                                                                                                                                                                                                                                  func ScaleRCByLabels

                                                                                                                                                                                                                                                                                                                                  func ScaleRCByLabels(clientset clientset.Interface, internalClientset internalclientset.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. TODO(p0lyn0mial): remove internalClientset. TODO(p0lyn0mial): update the callers.

                                                                                                                                                                                                                                                                                                                                    func ScaleResource

                                                                                                                                                                                                                                                                                                                                    func ScaleResource(
                                                                                                                                                                                                                                                                                                                                    	clientset clientset.Interface,
                                                                                                                                                                                                                                                                                                                                    	internalClientset internalclientset.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 SetInstanceTags

                                                                                                                                                                                                                                                                                                                                      func SetInstanceTags(cloudConfig CloudConfig, instanceName, zone string, tags []string) []string

                                                                                                                                                                                                                                                                                                                                        SetInstanceTags sets tags on GCE instance with given name.

                                                                                                                                                                                                                                                                                                                                        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(clientPool dynamic.ClientPool, 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 SkipUnlessProviderIs

                                                                                                                                                                                                                                                                                                                                          func SkipUnlessProviderIs(supportedProviders ...string)

                                                                                                                                                                                                                                                                                                                                          func SkipUnlessSSHKeyPresent

                                                                                                                                                                                                                                                                                                                                          func SkipUnlessSSHKeyPresent()

                                                                                                                                                                                                                                                                                                                                          func Skipf

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

                                                                                                                                                                                                                                                                                                                                          func StartApiserverCPUProfileGatherer

                                                                                                                                                                                                                                                                                                                                          func StartApiserverCPUProfileGatherer(delay time.Duration) chan struct{}

                                                                                                                                                                                                                                                                                                                                            StartApiserverCPUProfileGatherer is a polling-based gatherer of the apiserver's CPU profile. It takes the delay 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, ns, name string, port, 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, internalClientset internalclientset.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 TestNotReachableHTTP

                                                                                                                                                                                                                                                                                                                                                  func TestNotReachableHTTP(ip string, port int) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestNotReachableHTTPTimeout

                                                                                                                                                                                                                                                                                                                                                  func TestNotReachableHTTPTimeout(ip string, port int, timeout time.Duration) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestNotReachableUDP

                                                                                                                                                                                                                                                                                                                                                  func TestNotReachableUDP(ip string, port int, request string) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTP

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTP(ip string, port int, request string, expect string) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContent

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContent(ip string, port int, request string, expect string, content *bytes.Buffer) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContentTimeout

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContentTimeout(ip string, port int, request string, expect string, content *bytes.Buffer, timeout time.Duration) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContentTimeoutWithRetriableErrorCodes

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithContentTimeoutWithRetriableErrorCodes(ip string, port int, request string, expect string, content *bytes.Buffer, retriableErrCodes []int, timeout time.Duration) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithRetriableErrorCodes

                                                                                                                                                                                                                                                                                                                                                  func TestReachableHTTPWithRetriableErrorCodes(ip string, port int, request string, expect string, retriableErrCodes []int) (bool, error)

                                                                                                                                                                                                                                                                                                                                                  func TestReachableUDP

                                                                                                                                                                                                                                                                                                                                                  func TestReachableUDP(ip string, port int, request string, expect string) (bool, 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, tests []VolumeTest)

                                                                                                                                                                                                                                                                                                                                                      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) (*extensions.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) (*extensions.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 VerifyFirewallRule

                                                                                                                                                                                                                                                                                                                                                                func VerifyFirewallRule(res, exp *compute.Firewall, network string, portsSubset bool) error

                                                                                                                                                                                                                                                                                                                                                                  VerifyFirewallRule verifies whether the result firewall is consistent with the expected firewall. When `portsSubset` is false, match given ports exactly. Otherwise, only check ports are included.

                                                                                                                                                                                                                                                                                                                                                                  func VerifyGCEDiskAttached

                                                                                                                                                                                                                                                                                                                                                                  func VerifyGCEDiskAttached(diskName string, nodeName types.NodeName) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                    Sanity check for GCE testing. Verify the persistent disk attached to the node.

                                                                                                                                                                                                                                                                                                                                                                    func VerifyPodStartupLatency

                                                                                                                                                                                                                                                                                                                                                                    func VerifyPodStartupLatency(latency *PodStartupLatency) error

                                                                                                                                                                                                                                                                                                                                                                      Verifies whether 50, 90 and 99th percentiles of PodStartupLatency are within the 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 ViperizeFlags

                                                                                                                                                                                                                                                                                                                                                                        func ViperizeFlags()

                                                                                                                                                                                                                                                                                                                                                                          ViperizeFlags sets up all flag and config processing. Future configuration info should be added to viper, not to flags.

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

                                                                                                                                                                                                                                                                                                                                                                                  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 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 *extensions.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 *extensions.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 *extensions.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 extensions.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 WaitForFirewallRule

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForFirewallRule(gceCloud *gcecloud.GCECloud, fwName string, exist bool, timeout time.Duration) (*compute.Firewall, error)

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForGroupSize

                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForGroupSize(group string, size int32) error

                                                                                                                                                                                                                                                                                                                                                                                                        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, completions int32) error

                                                                                                                                                                                                                                                                                                                                                                                                            WaitForJobFinish uses c to wait for compeletions to complete for the Job jobName in namespace ns.

                                                                                                                                                                                                                                                                                                                                                                                                            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 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 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 extensionsclient.ReplicaSetsGetter, replicaSet *extensions.ReplicaSet) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      WaitForReplicaSetDesiredReplicas waits until the replicaset has desired number of replicas.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func WaitForReplicaSetTargetAvailableReplicas

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

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForReplicaSetTargetSpecReplicas

                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func WaitForReplicaSetTargetSpecReplicas(c clientset.Interface, replicaSet *extensions.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 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 *extensions.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 CleanCrdFn

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type CleanCrdFn func() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                CleanCrdFn declares the clean up function needed to remove the CRD

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                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           cloudprovider.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	KubemarkController *kubemark.KubemarkController
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  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 verifiy, 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 E2ELogger

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              type E2ELogger struct{}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*E2ELogger) Errorf

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (l *E2ELogger) Errorf(format string, args ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*E2ELogger) Infof

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (l *E2ELogger) Infof(format string, args ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              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 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 Framework

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type Framework struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	BaseName string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ClientSet                        clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	KubemarkExternalClusterClientSet clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	InternalClientset *internalclientset.Clientset
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	AggregatorClient  *aggregatorclient.Clientset
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	ClientPool        dynamic.ClientPool
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	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) 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) 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) 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) 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) 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 GCEIngressController

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type GCEIngressController struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Ns string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	UID string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Client clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Cloud  CloudConfig
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GCEIngressController manages implementation details of Ingress on GCE/GKE.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) BackendServiceUsingIG

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) BackendServiceUsingIG(nodeports []string) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      BackendServiceUsingIG returns true only if all global backend service with matching nodeports pointing to IG as backend

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*GCEIngressController) BackendServiceUsingNEG

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (cont *GCEIngressController) BackendServiceUsingNEG(nodeports []string) (bool, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        BackendServiceUsingNEG returns true only if all global backend service with matching nodeports pointing to NEG as backend

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*GCEIngressController) Cleanup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (cont *GCEIngressController) Cleanup(del bool) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Cleanup cleans up cloud resources. If del is false, it simply reports existing resources without deleting them. If dle is true, it deletes resources it finds acceptable (see canDelete func).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*GCEIngressController) CleanupGCEIngressController

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (cont *GCEIngressController) CleanupGCEIngressController() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*GCEIngressController) CleanupGCEIngressControllerWithTimeout

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (cont *GCEIngressController) CleanupGCEIngressControllerWithTimeout(timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            CleanupGCEIngressControllerWithTimeout calls the GCEIngressController.Cleanup(false) followed with deleting the static ip, and then a final GCEIngressController.Cleanup(true)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*GCEIngressController) CreateStaticIP

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (cont *GCEIngressController) CreateStaticIP(name string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              CreateStaticIP allocates a random static ip with the given name. Returns a string representation of the ip. Caller is expected to manage cleanup of the ip by invoking deleteStaticIPs.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*GCEIngressController) GetFirewallRule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (cont *GCEIngressController) GetFirewallRule() *compute.Firewall

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GetFirewallRule returns the firewall used by the GCEIngressController.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*GCEIngressController) GetFirewallRuleName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (cont *GCEIngressController) GetFirewallRuleName() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GetFirewallRuleName returns the name of the firewall used for the GCEIngressController.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*GCEIngressController) GetGlobalAddress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (cont *GCEIngressController) GetGlobalAddress(ipName string) *compute.Address

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*GCEIngressController) Init

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (cont *GCEIngressController) Init() error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Init initializes the GCEIngressController with an UID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListGlobalBackendServices

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListGlobalBackendServices() []*compute.BackendService

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListGlobalForwardingRules

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListGlobalForwardingRules() []*compute.ForwardingRule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListInstanceGroups

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListInstanceGroups() []*compute.InstanceGroup

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListSslCertificates

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListSslCertificates() []*compute.SslCertificate

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListTargetHttpProxies

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListTargetHttpProxies() []*compute.TargetHttpProxy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListTargetHttpsProxies

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListTargetHttpsProxies() []*compute.TargetHttpsProxy

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GCEIngressController) ListUrlMaps

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *GCEIngressController) ListUrlMaps() []*compute.UrlMap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type GLogger

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type GLogger struct{}

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GLogger) Errorf

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (l *GLogger) Errorf(format string, args ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*GLogger) Infof

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (l *GLogger) Infof(format string, args ...interface{})

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type IngressConformanceTests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type IngressConformanceTests struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	EntryLog string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	Execute  func()
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	ExitLog  string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      IngressConformanceTests contains a closure with an entry and exit log line.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func CreateIngressComformanceTests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func CreateIngressComformanceTests(jig *IngressTestJig, ns string, annotations map[string]string) []IngressConformanceTests

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        CreateIngressComformanceTests generates an slice of sequential test cases: a simple http ingress, ingress with HTTPS, ingress HTTPS with a modified hostname, ingress https with a modified URLMap

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type IngressTestJig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type IngressTestJig struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Client clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Logger TestLogger
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	RootCAs map[string][]byte
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Address string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Ingress *extensions.Ingress
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// class is the value of the annotation keyed under
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// `kubernetes.io/ingress.class`. It's added to all ingresses created by
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// this jig.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Class string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	// The interval used to poll urls
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	PollInterval time.Duration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          IngressTestJig holds the relevant state and parameters of the ingress test.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewIngressTestJig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func NewIngressTestJig(c clientset.Interface) *IngressTestJig

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NewIngressTestJig instantiates struct with client

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*IngressTestJig) AddHTTPS

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (j *IngressTestJig) AddHTTPS(secretName string, hosts ...string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              AddHTTPS updates the ingress to use this secret for these hosts.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*IngressTestJig) ConstructFirewallForIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (j *IngressTestJig) ConstructFirewallForIngress(gceController *GCEIngressController, nodeTags []string) *compute.Firewall

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ConstructFirewallForIngress returns the expected GCE firewall rule for the ingress resource

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*IngressTestJig) CreateIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (j *IngressTestJig) CreateIngress(manifestPath, ns string, ingAnnotations map[string]string, svcAnnotations map[string]string)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  CreateIngress creates the Ingress and associated service/rc. Required: ing.yaml, rc.yaml, svc.yaml must exist in manifestPath Optional: secret.yaml, ingAnnotations If ingAnnotations is specified it will overwrite any annotations in ing.yaml If svcAnnotations is specified it will overwrite any annotations in svc.yaml

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*IngressTestJig) GetDefaultBackendNodePort

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (j *IngressTestJig) GetDefaultBackendNodePort() (int32, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*IngressTestJig) GetDistinctResponseFromIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (j *IngressTestJig) GetDistinctResponseFromIngress() (sets.String, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GetDistinctResponseFromIngress tries GET call to the ingress VIP and return all distinct responses.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*IngressTestJig) GetIngressNodePorts

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (j *IngressTestJig) GetIngressNodePorts(includeDefaultBackend bool) []string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      GetIngressNodePorts returns related backend services' nodePorts. Current GCE ingress controller allows traffic to the default HTTP backend by default, so retrieve its nodePort if includeDefaultBackend is true.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*IngressTestJig) GetRootCA

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (j *IngressTestJig) GetRootCA(secretName string) (rootCA []byte)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        GetRootCA returns a rootCA from the ingress test jig.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*IngressTestJig) PrepareTLSSecret

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (j *IngressTestJig) PrepareTLSSecret(namespace, secretName string, hosts ...string) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          PrepareTLSSecret creates a TLS secret and caches the cert.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*IngressTestJig) TryDeleteGivenIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (j *IngressTestJig) TryDeleteGivenIngress(ing *extensions.Ingress)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*IngressTestJig) TryDeleteGivenService

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (j *IngressTestJig) TryDeleteGivenService(svc *v1.Service)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*IngressTestJig) TryDeleteIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (j *IngressTestJig) TryDeleteIngress()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TryDeleteIngress attempts to delete the ingress resource and logs errors if they occur.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*IngressTestJig) Update

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (j *IngressTestJig) Update(update func(ing *extensions.Ingress))

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Update retrieves the ingress, performs the passed function, and then updates it.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*IngressTestJig) VerifyURL

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (j *IngressTestJig) VerifyURL(route, host string, iterations int, interval time.Duration, httpClient *http.Client) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                VerifyURL polls for the given iterations, in intervals, and fails if the given url returns a non-healthy http code even once.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*IngressTestJig) WaitForGivenIngressWithTimeout

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (j *IngressTestJig) WaitForGivenIngressWithTimeout(ing *extensions.Ingress, waitForNodePort bool, timeout time.Duration) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  WaitForGivenIngressWithTimeout waits till the ingress acquires an IP, then waits for its hosts/urls to respond to a protocol check (either http or https). If waitForNodePort is true, the NodePort of the Service is verified before verifying the Ingress. NodePort is currently a requirement for cloudprovider Ingress.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*IngressTestJig) WaitForIngress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (j *IngressTestJig) WaitForIngress(waitForNodePort bool)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*IngressTestJig) WaitForIngressAddress

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (j *IngressTestJig) WaitForIngressAddress(c clientset.Interface, ns, ingName string, timeout time.Duration) (string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    WaitForIngressAddress waits for the Ingress to acquire an address.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*IngressTestJig) WaitForIngressWithCert

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (j *IngressTestJig) WaitForIngressWithCert(waitForNodePort bool, knownHosts []string, cert []byte) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      WaitForIngress waits till the ingress acquires an IP, then waits for its hosts/urls to respond to a protocol check (either http or https). If waitForNodePort is true, the NodePort of the Service is verified before verifying the Ingress. NodePort is currently a requirement for cloudprovider Ingress. Hostnames and certificate need to be explicitly passed in.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type InvariantFunc

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      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 GetKubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func GetKubeletLatencyMetrics(ms metrics.KubeletMetrics) KubeletLatencyMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GetKubeletLatencyMetrics gets all latency related kubelet metrics. Note that the KubeletMetrcis passed in should not contain subsystem prefix.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func GetKubeletMetrics

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func GetKubeletMetrics(ms metrics.KubeletMetrics, methods sets.String) KubeletLatencyMetrics

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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                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 with hostNetworking=true, and the
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// hostexec image.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	HostTestContainerPod *v1.Pod
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                	// 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) *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 NginxIngressController

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  type NginxIngressController struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Ns string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	Client clientset.Interface
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    NginxIngressController manages implementation details of Ingress on Nginx.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*NginxIngressController) Init

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (cont *NginxIngressController) Init()

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Init initializes the NginxIngressController

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      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
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          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 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) 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) 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 PodStartupLatency

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type PodStartupLatency struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	Latency LatencyMetric `json:"latency"`
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      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 specfying 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 ca