Documentation
¶
Index ¶
- Constants
- Variables
- func AddOrUpdateAvoidPodOnNode(c clientset.Interface, nodeName string, avoidPods v1.AvoidPods)
- func AddOrUpdateLabelOnNode(c clientset.Interface, nodeName string, labelKey, labelValue string)
- func AddOrUpdateLabelOnNodeAndReturnOldValue(c clientset.Interface, nodeName string, labelKey, labelValue string) string
- func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taint v1.Taint)
- func AfterReadingAllFlags(t *TestContextType)
- func AllNodesReady(c clientset.Interface, timeout time.Duration) error
- func ApiCallToPerfData(apicalls *APIResponsiveness) *perftype.PerfData
- func AssertCleanup(ns string, selectors ...string)
- func BindClusterRole(c v1beta1rbac.ClusterRoleBindingsGetter, clusterRole, ns string, ...)
- func BindClusterRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, clusterRole, ns string, ...)
- func BindRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, role, ns string, ...)
- func BlockNetwork(from string, to string)
- func BuildInsecureClient(timeout time.Duration) *http.Client
- func CPUUsageToPerfData(usagePerNode NodesCPUSummary) *perftype.PerfData
- func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[string]string) *perftype.PerfData
- func CheckConnectivityToHost(f *Framework, nodeName, podName, host string, pingCmd PingCommand, timeout int) error
- func CheckDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName, revision, image string) error
- func CheckForAllJobPodsRunning(c clientset.Interface, ns, jobName string, parallelism int32) (bool, error)
- func CheckForControllerManagerHealthy(duration time.Duration) error
- func CheckInvariants(events []watch.Event, fns ...InvariantFunc) error
- func CheckMasterVersion(c clientset.Interface, want string) error
- func CheckNewRSAnnotations(c clientset.Interface, ns, deploymentName string, ...) error
- func CheckNodesReady(c clientset.Interface, size int, timeout time.Duration) ([]v1.Node, error)
- func CheckNodesVersions(cs clientset.Interface, want string) error
- func CheckPodsCondition(c clientset.Interface, ns string, podNames []string, timeout time.Duration, ...) bool
- func CheckPodsRunningReady(c clientset.Interface, ns string, podNames []string, timeout time.Duration) bool
- func CheckPodsRunningReadyOrSucceeded(c clientset.Interface, ns string, podNames []string, timeout time.Duration) bool
- func CheckReachabilityFromPod(expectToBeReachable bool, timeout time.Duration, namespace, pod, target string)
- func CheckTestingNSDeletedExcept(c clientset.Interface, skip string) error
- func Cleanup(filePath, ns string, selectors ...string)
- func CleanupGCEIngressController(gceController *GCEIngressController)
- func CleanupGCEResources(c clientset.Interface, loadBalancerName, region, zone string) (retErr error)
- func CleanupServiceGCEResources(c clientset.Interface, loadBalancerName, region, zone string)
- func CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string)
- func ClusterMonitoringModeIs(monitoringModes ...string) bool
- func CollectAddresses(nodes *v1.NodeList, addressType v1.NodeAddressType) []string
- func ConformanceIt(text string, body interface{}, timeout ...float64) bool
- func ConstructFirewallForLBService(svc *v1.Service, nodeTag string) *compute.Firewall
- func ConstructHealthCheckFirewallForLBService(clusterID string, svc *v1.Service, nodeTag string, isNodesHealthCheck bool) *compute.Firewall
- func ContainerInitInvariant(older, newer runtime.Object) error
- func CoreDump(dir string)
- func CreateClientPod(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (*v1.Pod, error)
- func CreateDeployment(client clientset.Interface, replicas int32, podLabels map[string]string, ...) (*extensions.Deployment, error)
- func CreateEmptyFileOnPod(namespace string, podName string, filePath string) error
- func CreateExecPodOrFail(client clientset.Interface, ns, generateName string, tweak func(*v1.Pod)) string
- func CreateGCEStaticIP(name string) (string, error)
- func CreateGCEVolume() (*v1.PersistentVolumeSource, string)
- func CreateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error)
- func CreatePDWithRetry() (string, error)
- func CreatePDWithRetryAndZone(zone string) (string, error)
- func CreatePVC(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (*v1.PersistentVolumeClaim, error)
- func CreatePVCPV(c clientset.Interface, pvConfig PersistentVolumeConfig, ...) (*v1.PersistentVolume, *v1.PersistentVolumeClaim, error)
- func CreatePVPVC(c clientset.Interface, pvConfig PersistentVolumeConfig, ...) (*v1.PersistentVolume, *v1.PersistentVolumeClaim, error)
- func CreatePVSource(zone string) (*v1.PersistentVolumeSource, error)
- func CreatePVsPVCs(numpvs, numpvcs int, c clientset.Interface, ns string, ...) (PVMap, PVCMap, error)
- func CreatePod(client clientset.Interface, namespace string, nodeSelector map[string]string, ...) (*v1.Pod, error)
- func CreatePodOrFail(c clientset.Interface, ns, name string, labels map[string]string, ...)
- func CreatePrivilegedPSPBinding(f *Framework, namespace string)
- func CreateSecPod(client clientset.Interface, namespace string, ...) (*v1.Pod, error)
- func CreateServiceSpec(serviceName, externalName string, isHeadless bool, selector map[string]string) *v1.Service
- func CreateStatefulSetService(name string, labels map[string]string) *v1.Service
- func CreateStorageServer(cs clientset.Interface, config VolumeTestConfig) (pod *v1.Pod, ip string)
- func CreateTestingNS(baseName string, c clientset.Interface, labels map[string]string) (*v1.Namespace, error)
- func CreateWaitAndDeletePod(f *Framework, c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (err error)
- func DeleteAllStatefulSets(c clientset.Interface, ns string)
- func DeleteGCEStaticIP(name string) error
- func DeleteJob(c clientset.Interface, ns, name string) error
- func DeleteNamespaces(c clientset.Interface, deleteFilter, skipFilter []string) ([]string, error)
- func DeletePDWithRetry(diskName string) error
- func DeletePVCandValidatePV(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim, ...) error
- func DeletePVCandValidatePVGroup(c clientset.Interface, ns string, pvols PVMap, claims PVCMap, ...) error
- func DeletePVSource(pvSource *v1.PersistentVolumeSource) error
- func DeletePersistentVolume(c clientset.Interface, pvName string) error
- func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns string) error
- func DeletePodOrFail(c clientset.Interface, ns, name string)
- func DeletePodWithWait(f *Framework, c clientset.Interface, pod *v1.Pod) error
- func DeleteRCAndPods(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func DeleteRCAndWaitForGC(c clientset.Interface, ns, name string) error
- func DeleteResourceAndPods(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns, name string) error
- func DescribeIng(ns string)
- func DescribeSvc(ns string)
- func DsFromManifest(url string) (*extensions.DaemonSet, error)
- func DumpAllNamespaceInfo(c clientset.Interface, namespace string)
- func DumpDebugInfo(c clientset.Interface, ns string)
- func DumpEventsInNamespace(eventsLister EventsLister, namespace string)
- func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, ...)
- func EnableAndDisableInternalLB() (enable func(svc *v1.Service), disable func(svc *v1.Service))
- func EnsureLoadBalancerResourcesDeleted(ip, portRange string) error
- func EtcdUpgrade(target_storage, target_version string) error
- func ExpectNoError(err error, explain ...interface{})
- func ExpectNoErrorWithOffset(offset int, err error, explain ...interface{})
- func ExpectNoErrorWithRetries(fn func() error, maxRetries int, explain ...interface{})
- func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string, labelValue string)
- func ExpectNodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint)
- func Failf(format string, args ...interface{})
- func FailfWithOffset(offset int, format string, args ...interface{})
- func FilterNodes(nodeList *v1.NodeList, fn func(node v1.Node) bool)
- func FormatRuntimeOperationErrorRate(nodesResult map[string]NodeRuntimeOperationErrorRate) string
- func GcloudComputeResourceCreate(resource, name, project string, args ...string) error
- func GcloudComputeResourceDelete(resource, name, project string, args ...string) error
- func GenerateMasterRegexp(prefix string) string
- func GetAzureCloud() (*azure.Cloud, error)
- func GetClusterID(c clientset.Interface) (string, error)
- func GetClusterName(instancePrefix string) string
- func GetClusterZones(c clientset.Interface) (sets.String, error)
- func GetE2eFirewalls(masterName, masterTag, nodeTag, network, clusterIpRange string) []*compute.Firewall
- func GetGCECloud() (*gcecloud.GCECloud, error)
- func GetGPUDevicePluginImage() string
- func GetGroupNodes(group string) ([]string, error)
- func GetHostExternalAddress(client clientset.Interface, p *v1.Pod) (externalAddress string, err error)
- func GetIngressPoint(ing *v1.LoadBalancerIngress) string
- func GetInstancePrefix(masterName string) (string, error)
- func GetInstanceTags(cloudConfig CloudConfig, instanceName string) *compute.Tags
- func GetJob(c clientset.Interface, ns, name string) (*batch.Job, error)
- func GetJobPods(c clientset.Interface, ns, jobName string) (*v1.PodList, error)
- func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error)
- func GetKubeletPods(c clientset.Interface, node string) (*v1.PodList, error)
- func GetKubeletRunningPods(c clientset.Interface, node string) (*v1.PodList, error)
- func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsage
- func GetLogToFileFunc(file *os.File) func(format string, args ...interface{})
- func GetMasterAddress(c clientset.Interface) string
- func GetMasterAndWorkerNodesOrDie(c clientset.Interface) (sets.String, *v1.NodeList)
- func GetMasterHost() string
- func GetNodeAddresses(node *v1.Node, addressType v1.NodeAddressType) (ips []string)
- func GetNodeExternalIP(node *v1.Node) string
- func GetNodePortURL(client clientset.Interface, ns, name string, svcPort int) (string, error)
- func GetNodePublicIps(c clientset.Interface) ([]string, error)
- func GetNodeTTLAnnotationValue(c clientset.Interface) (time.Duration, error)
- func GetNodeTags(c clientset.Interface, cloudConfig CloudConfig) []string
- func GetPauseImageName(c clientset.Interface) string
- func GetPauseImageNameForHostArch() string
- func GetPodLogs(c clientset.Interface, namespace, podName, containerName string) (string, error)
- func GetPodSecretUpdateTimeout(c clientset.Interface) time.Duration
- func GetPodsForDeployment(client clientset.Interface, deployment *extensions.Deployment) (*v1.PodList, error)
- func GetPodsInNamespace(c clientset.Interface, ns string, ignoreLabels map[string]string) ([]*v1.Pod, error)
- func GetPodsScheduled(masterNodes sets.String, pods *v1.PodList) (scheduledPods, notScheduledPods []v1.Pod)
- func GetReadySchedulableNodesOrDie(c clientset.Interface) (nodes *v1.NodeList)
- func GetServerArchitecture(c clientset.Interface) string
- func GetServiceLoadBalancerCreationTimeout(cs clientset.Interface) time.Duration
- func GetServicesProxyRequest(c clientset.Interface, request *restclient.Request) (*restclient.Request, error)
- func GetSigner(provider string) (ssh.Signer, error)
- func GroupSize(group string) (int, error)
- func InjectHtml(client clientset.Interface, config VolumeTestConfig, volume v1.VolumeSource, ...)
- func IsGoogleAPIHTTPErrorCode(err error, code int) bool
- func IsNodeConditionSetAsExpected(node *v1.Node, conditionType v1.NodeConditionType, wantTrue bool) bool
- func IsNodeConditionSetAsExpectedSilent(node *v1.Node, conditionType v1.NodeConditionType, wantTrue bool) bool
- func IsNodeConditionUnset(node *v1.Node, conditionType v1.NodeConditionType) bool
- func IsPodSecurityPolicyEnabled(f *Framework) bool
- func IsRBACEnabled(f *Framework) bool
- func IsRetryableAPIError(err error) bool
- func IssueSSHCommand(cmd, provider string, node *v1.Node) error
- func KubeDescribe(text string, body func()) bool
- func KubectlCmd(args ...string) *exec.Cmd
- func KubectlVersion() (*utilversion.Version, error)
- func KubectlVersionGTE(v *utilversion.Version) (bool, error)
- func LaunchHostExecPod(client clientset.Interface, ns, name string) *v1.Pod
- func LaunchWebserverPod(f *Framework, podName, nodeName string) (ip string)
- func ListNamespaceEvents(c clientset.Interface, ns string) error
- func LoadClientset() (*clientset.Clientset, error)
- func LoadConfig() (*restclient.Config, error)
- func LoadInternalClientset() (*internalclientset.Clientset, error)
- func LogClusterImageSources()
- func LogContainersInPodsWithLabels(c clientset.Interface, ns string, match map[string]string, ...)
- func LogFailedContainers(c clientset.Interface, ns string, ...)
- func LogPodsWithLabels(c clientset.Interface, ns string, match map[string]string, ...)
- func LogSSHResult(result SSHResult)
- func LogSuspiciousLatency(latencyData []PodLatencyData, latencyDataLag []PodLatencyData, nodeCount int, ...)
- func Logf(format string, args ...interface{})
- func LookForString(expectedString string, timeout time.Duration, fn func() string) (result string, err error)
- func LookForStringInFile(ns, podName, container, file, expectedString string, timeout time.Duration) (result string, err error)
- func LookForStringInLog(ns, podName, container, expectedString string, timeout time.Duration) (result string, err error)
- func LookForStringInPodExec(ns, podName string, command []string, expectedString string, ...) (result string, err error)
- func MakeDeployment(replicas int32, podLabels map[string]string, namespace string, ...) *extensions.Deployment
- func MakeFirewallNameForLBService(name string) string
- func MakeHealthCheckFirewallNameForLBService(clusterID, name string, isNodesHealthCheck bool) string
- func MakePersistentVolume(pvConfig PersistentVolumeConfig) *v1.PersistentVolume
- func MakePersistentVolumeClaim(cfg PersistentVolumeClaimConfig, ns string) *v1.PersistentVolumeClaim
- func MakePod(ns string, nodeSelector map[string]string, ...) *v1.Pod
- func MakeSecPod(ns string, pvclaims []*v1.PersistentVolumeClaim, isPrivileged bool, ...) *v1.Pod
- func MakeWritePod(ns string, pvc *v1.PersistentVolumeClaim) *v1.Pod
- func MasterOSDistroIs(supportedMasterOsDistros ...string) bool
- func MasterUpgrade(v string) error
- func MasterUpgradeGCEWithKubeProxyDaemonSet(v string, enableKubeProxyDaemonSet bool) error
- func MigTemplate() (string, error)
- func NVIDIADevicePlugin(ns string) *v1.Pod
- func NewDeployment(deploymentName string, replicas int32, podLabels map[string]string, ...) *extensions.Deployment
- func NewE2ETestNodePreparer(client clientset.Interface, countToStrategy []testutil.CountToStrategy) testutil.TestNodePreparer
- func NewHostExecPodSpec(ns, name string) *v1.Pod
- func NewKubectlCommand(args ...string) *kubectlBuilder
- func NewReplicaSet(name, namespace string, replicas int32, podLabels map[string]string, ...) *extensions.ReplicaSet
- func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions, pods *v1.PodList) (*containerResourceGatherer, error)
- func NewStatefulSet(name, ns, governingSvcName string, replicas int32, ...) *apps.StatefulSet
- func NewStatefulSetPVC(name string) v1.PersistentVolumeClaim
- func NewStatefulSetScale(ss *apps.StatefulSet) *appsV1beta2.Scale
- func NewTestJob(behavior, name string, rPol v1.RestartPolicy, parallelism, completions int32, ...) *batch.Job
- func NodeAddresses(nodelist *v1.NodeList, addrType v1.NodeAddressType) []string
- func NodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) (bool, error)
- func NodeOSDistroIs(supportedNodeOsDistros ...string) bool
- func NodeProxyRequest(c clientset.Interface, node, endpoint string) (restclient.Result, error)
- func NodeSSHHosts(c clientset.Interface) ([]string, error)
- func NodeUpgrade(f *Framework, v string, img string) error
- func NodeUpgradeGCEWithKubeProxyDaemonSet(f *Framework, v string, img string, enableKubeProxyDaemonSet bool) error
- func NumberOfNVIDIAGPUs(node *v1.Node) int64
- func NumberOfReadyNodes(c clientset.Interface) (int, error)
- func NumberOfRegisteredNodes(c clientset.Interface) (int, error)
- func OpenWebSocketForURL(url *url.URL, config *restclient.Config, protocols []string) (*websocket.Conn, error)
- func PVPVCCleanup(c clientset.Interface, ns string, pv *v1.PersistentVolume, ...) []error
- func PVPVCMapCleanup(c clientset.Interface, ns string, pvols PVMap, claims PVCMap) []error
- func PackProtocolsPortsFromFirewall(alloweds []*compute.FirewallAllowed) []string
- func ParseKVLines(output, key string) string
- func PickNodeIP(c clientset.Interface) string
- func PodProxyResponseChecker(c clientset.Interface, ns string, label labels.Selector, controllerName string, ...) podProxyResponseChecker
- func PodStartupLatencyToPerfData(latency *PodStartupLatency) *perftype.PerfData
- func PodsCreated(c clientset.Interface, ns, name string, replicas int32) (*v1.PodList, error)
- func PodsCreatedByLabel(c clientset.Interface, ns, name string, replicas int32, label labels.Selector) (*v1.PodList, error)
- func PodsResponding(c clientset.Interface, ns, name string, wantName bool, pods *v1.PodList) error
- func PollURL(route, host string, timeout time.Duration, interval time.Duration, ...) error
- func PrettyPrintJSON(metrics interface{}) string
- func PrintAllKubeletPods(c clientset.Interface, nodeName string)
- func PrintLatencies(latencies []PodLatencyData, header string)
- func PrintPerfData(p *perftype.PerfData)
- func PrintSummaries(summaries []TestDataSummary, testBaseName string)
- func PrivilegedPSP(name string) *extensionsv1beta1.PodSecurityPolicy
- func ProviderIs(providers ...string) bool
- func ProxyMode(f *Framework) (string, error)
- func RcByNameContainer(name string, replicas int32, image string, labels map[string]string, ...) *v1.ReplicationController
- func RcByNamePort(name string, replicas int32, image string, port int, protocol v1.Protocol, ...) *v1.ReplicationController
- func RealVersion(s string) (string, error)
- func RegisterClusterFlags()
- func RegisterCommonFlags()
- func RegisterNodeFlags()
- func RemoveAvoidPodsOffNode(c clientset.Interface, nodeName string)
- func RemoveCleanupAction(p CleanupActionHandle)
- func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKey string)
- func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint v1.Taint)
- func ResetMetrics(c clientset.Interface) error
- func ResizeGroup(group string, size int32) error
- func ResourceUsageToPerfData(usagePerNode ResourceUsagePerNode) *perftype.PerfData
- func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels map[string]string) *perftype.PerfData
- func RestartApiserver(c discovery.ServerVersionInterface) error
- func RestartControllerManager() error
- func RestartKubeProxy(host string) error
- func RestartKubelet(host string) error
- func RestclientConfig(kubeContext string) (*clientcmdapi.Config, error)
- func RunCleanupActions()
- func RunCmd(command string, args ...string) (string, string, error)
- func RunCmdEnv(env []string, command string, args ...string) (string, string, error)
- func RunDeployment(config testutils.DeploymentConfig) error
- func RunHostCmd(ns, name, cmd string) (string, error)
- func RunHostCmdOrDie(ns, name, cmd string) string
- func RunHostCmdWithRetries(ns, name, cmd string, interval, timeout time.Duration) (string, error)
- func RunIfContainerRuntimeIs(runtimes ...string)
- func RunIfSystemSpecNameIs(names ...string)
- func RunKubectl(args ...string) (string, error)
- func RunKubectlOrDie(args ...string) string
- func RunKubectlOrDieInput(data string, args ...string) string
- func RunRC(config testutils.RCConfig) error
- func RunReplicaSet(config testutils.ReplicaSetConfig) error
- func SameStringArray(result, expected []string, include bool) error
- func ScaleDeployment(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func ScaleRC(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func ScaleRCByLabels(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func ScaleResource(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func ServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface) (bool, error)
- func ServiceResponding(c clientset.Interface, ns, name string) error
- func SetInstanceTags(cloudConfig CloudConfig, instanceName, zone string, tags []string) []string
- func SimpleGET(c *http.Client, url, host string) (string, error)
- func SkipIfContainerRuntimeIs(runtimes ...string)
- func SkipIfMissingResource(clientPool dynamic.ClientPool, gvr schema.GroupVersionResource, ...)
- func SkipIfMultizone(c clientset.Interface)
- func SkipIfProviderIs(unsupportedProviders ...string)
- func SkipUnlessAtLeast(value int, minValue int, message string)
- func SkipUnlessClusterMonitoringModeIs(supportedMonitoring ...string)
- func SkipUnlessKubectlVersionGTE(v *utilversion.Version)
- func SkipUnlessLocalEphemeralStorageEnabled()
- func SkipUnlessMasterOSDistroIs(supportedMasterOsDistros ...string)
- func SkipUnlessNodeCountIsAtLeast(minNodeCount int)
- func SkipUnlessNodeCountIsAtMost(maxNodeCount int)
- func SkipUnlessNodeOSDistroIs(supportedNodeOsDistros ...string)
- func SkipUnlessProviderIs(supportedProviders ...string)
- func SkipUnlessSSHKeyPresent()
- func SkipUnlessServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface)
- func Skipf(format string, args ...interface{})
- func StartCmdAndStreamOutput(cmd *exec.Cmd) (stdout, stderr io.ReadCloser, err error)
- func StartServeHostnameService(c clientset.Interface, internalClient internalclientset.Interface, ...) ([]string, string, error)
- func StartVolumeServer(client clientset.Interface, config VolumeTestConfig) *v1.Pod
- func StopServeHostnameService(clientset clientset.Interface, internalClientset internalclientset.Interface, ...) error
- func TargetContainers() []string
- func TestHitNodesFromOutside(externalIP string, httpPort int32, timeout time.Duration, ...) error
- func TestHitNodesFromOutsideWithCount(externalIP string, httpPort int32, timeout time.Duration, ...) error
- func TestNotReachableHTTP(ip string, port int) (bool, error)
- func TestNotReachableHTTPTimeout(ip string, port int, timeout time.Duration) (bool, error)
- func TestNotReachableUDP(ip string, port int, request string) (bool, error)
- func TestReachableHTTP(ip string, port int, request string, expect string) (bool, error)
- func TestReachableHTTPWithContent(ip string, port int, request string, expect string, content *bytes.Buffer) (bool, error)
- func TestReachableHTTPWithContentTimeout(ip string, port int, request string, expect string, content *bytes.Buffer, ...) (bool, error)
- func TestReachableHTTPWithContentTimeoutWithRetriableErrorCodes(ip string, port int, request string, expect string, content *bytes.Buffer, ...) (bool, error)
- func TestReachableHTTPWithRetriableErrorCodes(ip string, port int, request string, expect string, retriableErrCodes []int) (bool, error)
- func TestReachableUDP(ip string, port int, request string, expect string) (bool, error)
- func TestUnderTemporaryNetworkFailure(c clientset.Interface, ns string, node *v1.Node, testFunc func())
- func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGroup *int64, ...)
- func TryKill(cmd *exec.Cmd)
- func UnblockNetwork(from string, to string)
- func UpdateDaemonSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateDSFunc) (ds *extensions.DaemonSet, err error)
- func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, ...) (*extensions.Deployment, error)
- func UpdateJob(c clientset.Interface, ns string, job *batch.Job) (*batch.Job, error)
- func UpdateJobFunc(c clientset.Interface, ns, name string, updateFn func(job *batch.Job))
- func UpdateJobWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateJobFunc) (job *batch.Job, err error)
- func UpdatePodWithRetries(client clientset.Interface, ns, name string, update func(*v1.Pod)) (*v1.Pod, error)
- func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, ...) (*extensions.ReplicaSet, error)
- func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateRcFunc) (*v1.ReplicationController, error)
- func UpdateService(c clientset.Interface, namespace, serviceName string, update func(*v1.Service)) (*v1.Service, error)
- func UpdateStatefulSetWithRetries(c clientset.Interface, namespace, name string, ...) (statefulSet *apps.StatefulSet, err error)
- func ValidateController(c clientset.Interface, containerImage string, replicas int, ...)
- func ValidateEndpointsOrFail(c clientset.Interface, namespace, serviceName string, ...)
- func VerifyFirewallRule(res, exp *compute.Firewall, network string, portsSubset bool) error
- func VerifyGCEDiskAttached(diskName string, nodeName types.NodeName) (bool, error)
- func VerifyPodStartupLatency(latency *PodStartupLatency) error
- func VerifyPods(c clientset.Interface, ns, name string, wantName bool, replicas int32) error
- func VerifyPodsRunning(c clientset.Interface, ns, name string, wantName bool, replicas int32) error
- func VerifyServeHostnameServiceDown(c clientset.Interface, host string, serviceIP string, servicePort int) error
- func VerifyServeHostnameServiceUp(c clientset.Interface, ns, host string, expectedPods []string, ...) error
- func VerifyThatTaintIsGone(c clientset.Interface, nodeName string, taint *v1.Taint)
- func ViperizeFlags()
- func VolumeTestCleanup(f *Framework, config VolumeTestConfig)
- func WaitAndVerifyBinds(c clientset.Interface, ns string, pvols PVMap, claims PVCMap, ...) error
- func WaitForAllJobPodsRunning(c clientset.Interface, ns, jobName string, parallelism int32) error
- func WaitForAllNodesHealthy(c clientset.Interface, timeout time.Duration) error
- func WaitForAllNodesSchedulable(c clientset.Interface, timeout time.Duration) error
- func WaitForApiserverUp(c clientset.Interface) error
- func WaitForAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, ...) error
- func WaitForControlledPods(c clientset.Interface, ns, name string, kind schema.GroupKind) (pods *v1.PodList, err error)
- func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind schema.GroupKind) error
- func WaitForControllerManagerUp() error
- func WaitForDefaultServiceAccountInNamespace(c clientset.Interface, namespace string) error
- func WaitForDeploymentComplete(c clientset.Interface, d *extensions.Deployment) error
- func WaitForDeploymentCompleteAndCheckRolling(c clientset.Interface, d *extensions.Deployment) error
- func WaitForDeploymentOldRSsNum(c clientset.Interface, ns, deploymentName string, desiredRSNum int) error
- func WaitForDeploymentRevision(c clientset.Interface, d *extensions.Deployment, targetRevision string) error
- func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName string, revision, image string) error
- func WaitForDeploymentRollbackCleared(c clientset.Interface, ns, deploymentName string) error
- func WaitForDeploymentUpdatedReplicasLTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, ...) error
- func WaitForDeploymentWithCondition(c clientset.Interface, ns, deploymentName, reason string, ...) error
- func WaitForEndpoint(c clientset.Interface, ns, name string) error
- func WaitForEvents(c clientset.Interface, ns string, objOrRef runtime.Object, ...) error
- func WaitForFirewallRule(gceCloud *gcecloud.GCECloud, fwName string, exist bool, timeout time.Duration) (*compute.Firewall, error)
- func WaitForGroupSize(group string, size int32) error
- func WaitForIngressAddress(c clientset.Interface, ns, ingName string, timeout time.Duration) (string, error)
- func WaitForJobFailure(c clientset.Interface, ns, jobName string, timeout time.Duration, ...) error
- func WaitForJobFinish(c clientset.Interface, ns, jobName string, completions int32) error
- func WaitForKubeletUp(host string) error
- func WaitForMasters(masterPrefix string, c clientset.Interface, size int, timeout time.Duration) error
- func WaitForMatchPodsCondition(c clientset.Interface, opts metav1.ListOptions, desc string, ...) error
- func WaitForNamedAuthorizationUpdate(c v1beta1authorization.SubjectAccessReviewsGetter, ...) error
- func WaitForNamespacesDeleted(c clientset.Interface, namespaces []string, timeout time.Duration) error
- func WaitForNodeToBe(c clientset.Interface, name string, conditionType v1.NodeConditionType, ...) bool
- func WaitForNodeToBeNotReady(c clientset.Interface, name string, timeout time.Duration) bool
- func WaitForNodeToBeReady(c clientset.Interface, name string, timeout time.Duration) bool
- func WaitForObservedDeployment(c clientset.Interface, ns, deploymentName string, desiredGeneration int64) error
- func WaitForPVClaimBoundPhase(client clientset.Interface, pvclaims []*v1.PersistentVolumeClaim, ...) ([]*v1.PersistentVolume, error)
- func WaitForPartialEvents(c clientset.Interface, ns string, objOrRef runtime.Object, ...) error
- func WaitForPersistentVolumeClaimPhase(phase v1.PersistentVolumeClaimPhase, c clientset.Interface, ns string, ...) error
- func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll, timeout time.Duration) error
- func WaitForPersistentVolumePhase(phase v1.PersistentVolumePhase, c clientset.Interface, pvName string, ...) error
- func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeout time.Duration, ...) error
- func WaitForPodNameRunningInNamespace(c clientset.Interface, podName, namespace string) error
- func WaitForPodNoLongerRunningInNamespace(c clientset.Interface, podName, namespace string) error
- func WaitForPodNotPending(c clientset.Interface, ns, podName string) error
- func WaitForPodRunningInNamespace(c clientset.Interface, pod *v1.Pod) error
- func WaitForPodSuccessInNamespace(c clientset.Interface, podName string, namespace string) error
- func WaitForPodSuccessInNamespaceSlow(c clientset.Interface, podName string, namespace string) error
- func WaitForPodToDisappear(c clientset.Interface, ns, podName string, label labels.Selector, ...) error
- func WaitForPodsReady(c clientset.Interface, ns, name string, minReadySeconds int) error
- func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedNotReadyPods int32, ...) error
- func WaitForPodsSuccess(c clientset.Interface, ns string, successPodLabels map[string]string, ...) error
- func WaitForPodsWithLabel(c clientset.Interface, ns string, label labels.Selector) (pods *v1.PodList, err error)
- func WaitForPodsWithLabelRunningReady(c clientset.Interface, ns string, label labels.Selector, num int, ...) (pods *v1.PodList, err error)
- func WaitForPodsWithLabelScheduled(c clientset.Interface, ns string, label labels.Selector) (pods *v1.PodList, err error)
- func WaitForRCPodToDisappear(c clientset.Interface, ns, rcName, podName string) error
- func WaitForRCToStabilize(c clientset.Interface, ns, name string, timeout time.Duration) error
- func WaitForReadyNodes(c clientset.Interface, size int, timeout time.Duration) error
- func WaitForReadyReplicaSet(c clientset.Interface, ns, name string) error
- func WaitForReplicationController(c clientset.Interface, namespace, name string, exist bool, ...) error
- func WaitForReplicationControllerwithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, ...) error
- func WaitForService(c clientset.Interface, namespace, name string, exist bool, ...) error
- func WaitForServiceEndpointsNum(c clientset.Interface, namespace, serviceName string, expectNum int, ...) error
- func WaitForServiceWithSelector(c clientset.Interface, namespace string, selector labels.Selector, exist bool, ...) error
- func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int
- func WaitOnPVandPVC(c clientset.Interface, ns string, pv *v1.PersistentVolume, ...) error
- func WaitTimeoutForPodNoLongerRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error
- func WaitTimeoutForPodRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error
- func WatchRecreateDeployment(c clientset.Interface, d *extensions.Deployment) error
- type APICall
- type APIResponsiveness
- type Address
- type CleanupActionHandle
- type ClientConfigGetter
- type CloudConfig
- type ClusterVerification
- type ContainerFailures
- type ContainerResourceUsage
- type ContainersCPUSummary
- type CreateTestingNSFn
- type E2ETestNodePreparer
- type EventsLister
- type ExecOptions
- type Framework
- func (f *Framework) AfterEach()
- func (f *Framework) BeforeEach()
- func (f *Framework) CheckFileSizeViaContainer(podName, containerName, path string) (string, error)
- func (f *Framework) CreateNamespace(baseName string, labels map[string]string) (*v1.Namespace, error)
- func (f *Framework) CreatePodsPerNodeForSimpleApp(appName string, podSpec func(n v1.Node) v1.PodSpec, maxCount int) map[string]string
- func (f *Framework) CreateServiceForSimpleApp(contPort, svcPort int, appName string) *v1.Service
- func (f *Framework) CreateServiceForSimpleAppWithPods(contPort int, svcPort int, appName string, podSpec func(n v1.Node) v1.PodSpec, ...) (error, *v1.Service)
- func (f *Framework) ExecCommandInContainer(podName, containerName string, cmd ...string) string
- func (f *Framework) ExecCommandInContainerWithFullOutput(podName, containerName string, cmd ...string) (string, string, error)
- func (f *Framework) ExecCommandInPod(podName string, cmd ...string) string
- func (f *Framework) ExecCommandInPodWithFullOutput(podName string, cmd ...string) (string, string, error)
- func (f *Framework) ExecShellInContainer(podName, containerName string, cmd string) string
- func (f *Framework) ExecShellInPod(podName string, cmd string) string
- func (f *Framework) ExecShellInPodWithFullOutput(podName string, cmd string) (string, string, error)
- func (f *Framework) ExecWithOptions(options ExecOptions) (string, string, error)
- func (f *Framework) MatchContainerOutput(pod *v1.Pod, containerName string, expectedOutput []string, ...) error
- func (f *Framework) NewClusterVerification(namespace *v1.Namespace, filter PodStateVerification) *ClusterVerification
- func (f *Framework) NewTestPod(name string, requests v1.ResourceList, limits v1.ResourceList) *v1.Pod
- func (f *Framework) PodClient() *PodClient
- func (f *Framework) PodClientNS(namespace string) *PodClient
- func (f *Framework) ReadFileViaContainer(podName, containerName string, path string) (string, error)
- func (f *Framework) TestContainerOutput(scenarioName string, pod *v1.Pod, containerIndex int, expectedOutput []string)
- func (f *Framework) TestContainerOutputRegexp(scenarioName string, pod *v1.Pod, containerIndex int, expectedOutput []string)
- func (f *Framework) WaitForPodNoLongerRunning(podName string) error
- func (f *Framework) WaitForPodNotFound(podName string, timeout time.Duration) error
- func (f *Framework) WaitForPodReady(podName string) error
- func (f *Framework) WaitForPodRunning(podName string) error
- func (f *Framework) WaitForPodRunningSlow(podName string) error
- func (f *Framework) WaitForPodTerminated(podName, reason string) error
- func (f *Framework) WriteFileViaContainer(podName, containerName string, path string, contents string) error
- type FrameworkOptions
- type GCEIngressController
- func (cont *GCEIngressController) BackendServiceUsingIG(nodeports []string) (bool, error)
- func (cont *GCEIngressController) BackendServiceUsingNEG(nodeports []string) (bool, error)
- func (cont *GCEIngressController) Cleanup(del bool) error
- func (cont *GCEIngressController) CreateStaticIP(name string) string
- func (cont *GCEIngressController) GetFirewallRule() *compute.Firewall
- func (cont *GCEIngressController) GetFirewallRuleName() string
- func (cont *GCEIngressController) Init()
- type IngressConformanceTests
- type IngressTestJig
- func (j *IngressTestJig) AddHTTPS(secretName string, hosts ...string)
- func (j *IngressTestJig) ConstructFirewallForIngress(gceController *GCEIngressController, nodeTags []string) *compute.Firewall
- func (j *IngressTestJig) CreateIngress(manifestPath, ns string, ingAnnotations map[string]string, ...)
- func (j *IngressTestJig) GetDistinctResponseFromIngress() (sets.String, error)
- func (j *IngressTestJig) GetIngressNodePorts(includeDefaultBackend bool) []string
- func (j *IngressTestJig) GetRootCA(secretName string) (rootCA []byte)
- func (j *IngressTestJig) TryDeleteIngress()
- func (j *IngressTestJig) Update(update func(ing *extensions.Ingress))
- func (j *IngressTestJig) VerifyURL(route, host string, iterations int, interval time.Duration, ...) error
- func (j *IngressTestJig) WaitForIngress(waitForNodePort bool)
- type InvariantFunc
- type KubeCluster
- type KubeConfig
- type KubeUser
- type KubeletLatencyMetric
- type KubeletLatencyMetrics
- func GetKubeletLatencyMetrics(ms metrics.KubeletMetrics) KubeletLatencyMetrics
- func GetKubeletMetrics(ms metrics.KubeletMetrics, methods sets.String) KubeletLatencyMetrics
- func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration, nodeName string, ...) (KubeletLatencyMetrics, error)
- type KubemarkResourceUsage
- type LatencyMetric
- type LatencySlice
- type LogSizeDataTimeseries
- type LogSizeGatherer
- type LogsSizeData
- type LogsSizeDataSummary
- type LogsSizeVerifier
- type MetricsForE2E
- type NetworkingTestConfig
- func (config *NetworkingTestConfig) DeleteNetProxyPod()
- func (config *NetworkingTestConfig) DeleteNodePortService()
- func (config *NetworkingTestConfig) DialFromContainer(protocol, containerIP, targetIP string, ...)
- func (config *NetworkingTestConfig) DialFromEndpointContainer(protocol, targetIP string, targetPort, maxTries, minTries int, ...)
- func (config *NetworkingTestConfig) DialFromNode(protocol, targetIP string, targetPort, maxTries, minTries int, ...)
- func (config *NetworkingTestConfig) DialFromTestContainer(protocol, targetIP string, targetPort, maxTries, minTries int, ...)
- func (config *NetworkingTestConfig) EndpointHostnames() sets.String
- func (config *NetworkingTestConfig) GetEndpointsFromContainer(protocol, containerIP, targetIP string, ...) (sets.String, error)
- func (config *NetworkingTestConfig) GetEndpointsFromTestContainer(protocol, targetIP string, targetPort, tries int) (sets.String, error)
- func (config *NetworkingTestConfig) GetSelfURL(port int32, path string, expected string)
- func (config *NetworkingTestConfig) GetSelfURLStatusCode(port int32, path string, expected string)
- type NginxIngressController
- type NodeRuntimeOperationErrorRate
- type NodeTestContextType
- type NodesCPUSummary
- type PVCMap
- type PVMap
- type PersistentVolumeClaimConfig
- type PersistentVolumeConfig
- type PingCommand
- type PodClient
- func (c *PodClient) Create(pod *v1.Pod) *v1.Pod
- func (c *PodClient) CreateBatch(pods []*v1.Pod) []*v1.Pod
- func (c *PodClient) CreateSync(pod *v1.Pod) *v1.Pod
- func (c *PodClient) CreateSyncInNamespace(pod *v1.Pod, namespace string) *v1.Pod
- func (c *PodClient) DeleteSync(name string, options *metav1.DeleteOptions, timeout time.Duration)
- func (c *PodClient) DeleteSyncInNamespace(name string, namespace string, options *metav1.DeleteOptions, ...)
- func (c *PodClient) MatchContainerOutput(name string, containerName string, expectedRegexp string) error
- func (c *PodClient) Update(name string, updateFn func(pod *v1.Pod))
- func (c *PodClient) WaitForErrorEventOrSuccess(pod *v1.Pod) (*v1.Event, error)
- func (c *PodClient) WaitForFailure(name string, timeout time.Duration)
- func (c *PodClient) WaitForSuccess(name string, timeout time.Duration)
- type PodLatencyData
- type PodStartupLatency
- type PodStateVerification
- type PortsByPodName
- type PortsByPodUID
- type ResourceConstraint
- type ResourceGathererOptions
- type ResourceMonitor
- func (r *ResourceMonitor) FormatCPUSummary(summary NodesCPUSummary) string
- func (r *ResourceMonitor) FormatResourceUsage(s ResourceUsagePerNode) string
- func (r *ResourceMonitor) GetCPUSummary() NodesCPUSummary
- func (r *ResourceMonitor) GetLatest() (ResourceUsagePerNode, error)
- func (r *ResourceMonitor) GetMasterNodeCPUSummary(summaryPerNode NodesCPUSummary) NodesCPUSummary
- func (r *ResourceMonitor) GetMasterNodeLatest(usagePerNode ResourceUsagePerNode) ResourceUsagePerNode
- func (r *ResourceMonitor) LogCPUSummary()
- func (r *ResourceMonitor) LogLatest()
- func (r *ResourceMonitor) Reset()
- func (r *ResourceMonitor) Start()
- func (r *ResourceMonitor) Stop()
- type ResourceUsagePerContainer
- type ResourceUsagePerNode
- type ResourceUsageSummary
- type RuntimeOperationErrorRate
- type RuntimeOperationMonitor
- type SSHResult
- type SaturationTime
- type SchedulingLatency
- type ServiceTestFixture
- func (t *ServiceTestFixture) BuildServiceSpec() *v1.Service
- func (t *ServiceTestFixture) Cleanup() []error
- func (t *ServiceTestFixture) CreateRC(rc *v1.ReplicationController) (*v1.ReplicationController, error)
- func (t *ServiceTestFixture) CreateService(service *v1.Service) (*v1.Service, error)
- func (t *ServiceTestFixture) CreateWebserverRC(replicas int32) *v1.ReplicationController
- func (t *ServiceTestFixture) DeleteService(serviceName string) error
- type ServiceTestJig
- func (j *ServiceTestJig) AddRCAntiAffinity(rc *v1.ReplicationController)
- func (j *ServiceTestJig) ChangeServiceNodePortOrFail(namespace, name string, initial int) *v1.Service
- func (j *ServiceTestJig) ChangeServiceType(namespace, name string, newType v1.ServiceType, timeout time.Duration)
- func (j *ServiceTestJig) CreateExternalNameServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
- func (j *ServiceTestJig) CreateLoadBalancerService(namespace, serviceName string, timeout time.Duration, ...) *v1.Service
- func (j *ServiceTestJig) CreateOnlyLocalLoadBalancerService(namespace, serviceName string, timeout time.Duration, createPod bool, ...) *v1.Service
- func (j *ServiceTestJig) CreateOnlyLocalNodePortService(namespace, serviceName string, createPod bool) *v1.Service
- func (j *ServiceTestJig) CreatePDBOrFail(namespace string, rc *v1.ReplicationController) *policyv1beta1.PodDisruptionBudget
- func (j *ServiceTestJig) CreateTCPServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
- func (j *ServiceTestJig) CreateTCPServiceWithPort(namespace string, tweak func(svc *v1.Service), port int32) *v1.Service
- func (j *ServiceTestJig) CreateUDPServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
- func (j *ServiceTestJig) GetEndpointNodes(svc *v1.Service) map[string][]string
- func (j *ServiceTestJig) GetHTTPContent(host string, port int, timeout time.Duration, url string) bytes.Buffer
- func (j *ServiceTestJig) GetNodes(maxNodesForTest int) (nodes *v1.NodeList)
- func (j *ServiceTestJig) GetNodesNames(maxNodesForTest int) []string
- func (j *ServiceTestJig) LaunchEchoserverPodOnNode(f *Framework, nodeName, podName string)
- func (j *ServiceTestJig) LaunchNetexecPodOnNode(f *Framework, nodeName, podName string, httpPort, udpPort int32, ...)
- func (j *ServiceTestJig) RunOrFail(namespace string, tweak func(rc *v1.ReplicationController)) *v1.ReplicationController
- func (j *ServiceTestJig) SanityCheckService(svc *v1.Service, svcType v1.ServiceType)
- func (j *ServiceTestJig) TestHTTPHealthCheckNodePort(host string, port int, request string, timeout time.Duration, ...) error
- func (j *ServiceTestJig) TestNotReachableHTTP(host string, port int, timeout time.Duration)
- func (j *ServiceTestJig) TestNotReachableUDP(host string, port int, timeout time.Duration)
- func (j *ServiceTestJig) TestReachableHTTP(host string, port int, timeout time.Duration)
- func (j *ServiceTestJig) TestReachableHTTPWithRetriableErrorCodes(host string, port int, retriableErrCodes []int, timeout time.Duration)
- func (j *ServiceTestJig) TestReachableUDP(host string, port int, timeout time.Duration)
- func (j *ServiceTestJig) UpdateService(namespace, name string, update func(*v1.Service)) (*v1.Service, error)
- func (j *ServiceTestJig) UpdateServiceOrFail(namespace, name string, update func(*v1.Service)) *v1.Service
- func (j *ServiceTestJig) WaitForEndpointOnNode(namespace, serviceName, nodeName string)
- func (j *ServiceTestJig) WaitForLoadBalancerDestroyOrFail(namespace, name string, ip string, port int, timeout time.Duration) *v1.Service
- func (j *ServiceTestJig) WaitForLoadBalancerOrFail(namespace, name string, timeout time.Duration) *v1.Service
- func (j *ServiceTestJig) WaitForNewIngressIPOrFail(namespace, name, existingIP string, timeout time.Duration) *v1.Service
- type SingleContainerSummary
- type SingleLogSummary
- type StatefulSetTester
- func (s *StatefulSetTester) BreakHttpProbe(ss *apps.StatefulSet) error
- func (s *StatefulSetTester) BreakPodHttpProbe(ss *apps.StatefulSet, pod *v1.Pod) error
- func (s *StatefulSetTester) CheckHostname(ss *apps.StatefulSet) error
- func (s *StatefulSetTester) CheckMount(ss *apps.StatefulSet, mountPath string) error
- func (p *StatefulSetTester) CheckServiceName(ss *apps.StatefulSet, expectedServiceName string) error
- func (s *StatefulSetTester) ConfirmStatefulPodCount(count int, ss *apps.StatefulSet, timeout time.Duration, hard bool)
- func (s *StatefulSetTester) CreateStatefulSet(manifestPath, ns string) *apps.StatefulSet
- func (s *StatefulSetTester) DeleteStatefulPodAtIndex(index int, ss *apps.StatefulSet)
- func (s *StatefulSetTester) ExecInStatefulPods(ss *apps.StatefulSet, cmd string) error
- func (s *StatefulSetTester) GetPodList(ss *apps.StatefulSet) *v1.PodList
- func (s *StatefulSetTester) GetStatefulSet(namespace, name string) *apps.StatefulSet
- func (s *StatefulSetTester) PauseNewPods(ss *apps.StatefulSet)
- func (s *StatefulSetTester) Restart(ss *apps.StatefulSet)
- func (s *StatefulSetTester) RestoreHttpProbe(ss *apps.StatefulSet) error
- func (s *StatefulSetTester) RestorePodHttpProbe(ss *apps.StatefulSet, pod *v1.Pod) error
- func (s *StatefulSetTester) ResumeNextPod(ss *apps.StatefulSet)
- func (s *StatefulSetTester) Saturate(ss *apps.StatefulSet)
- func (s *StatefulSetTester) Scale(ss *apps.StatefulSet, count int32) (*apps.StatefulSet, error)
- func (s *StatefulSetTester) SetHttpProbe(ss *apps.StatefulSet)
- func (s *StatefulSetTester) SortStatefulPods(pods *v1.PodList)
- func (s *StatefulSetTester) UpdateReplicas(ss *apps.StatefulSet, count int32)
- func (s *StatefulSetTester) VerifyPodAtIndex(index int, ss *apps.StatefulSet, verify VerifyStatefulPodFunc)
- func (s *StatefulSetTester) WaitForPartitionedRollingUpdate(set *apps.StatefulSet) (*apps.StatefulSet, *v1.PodList)
- func (s *StatefulSetTester) WaitForPodNotReady(set *apps.StatefulSet, podName string) (*apps.StatefulSet, *v1.PodList)
- func (s *StatefulSetTester) WaitForPodReady(set *apps.StatefulSet, podName string) (*apps.StatefulSet, *v1.PodList)
- func (s *StatefulSetTester) WaitForRollingUpdate(set *apps.StatefulSet) (*apps.StatefulSet, *v1.PodList)
- func (s *StatefulSetTester) WaitForRunning(numPodsRunning, numPodsReady int32, ss *apps.StatefulSet)
- func (s *StatefulSetTester) WaitForRunningAndNotReady(numStatefulPods int32, ss *apps.StatefulSet)
- func (s *StatefulSetTester) WaitForRunningAndReady(numStatefulPods int32, ss *apps.StatefulSet)
- func (s *StatefulSetTester) WaitForState(ss *apps.StatefulSet, until func(*apps.StatefulSet, *v1.PodList) (bool, error))
- func (s *StatefulSetTester) WaitForStatus(set *apps.StatefulSet) *apps.StatefulSet
- func (s *StatefulSetTester) WaitForStatusReadyReplicas(ss *apps.StatefulSet, expectedReplicas int32)
- func (s *StatefulSetTester) WaitForStatusReplicas(ss *apps.StatefulSet, expectedReplicas int32)
- type TestContextType
- type TestDataSummary
- type TimestampedSize
- type VerifyStatefulPodFunc
- type VolumeTest
- type VolumeTestConfig
- func NewGlusterfsServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
- func NewISCSIServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
- func NewNFSServer(cs clientset.Interface, namespace string, args []string) (config VolumeTestConfig, pod *v1.Pod, ip string)
- func NewRBDServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
- type WorkItem
Constants ¶
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)
)
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/release-1.9/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml"
)
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.
IngressClass = "kubernetes.io/ingress.class"
// Ingress class annotation value for multi cluster ingress.
MulticlusterIngressClassValue = "gce-multi-cluster"
// 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
)
const (
// How long to wait for a job to finish.
JobTimeout = 15 * time.Minute
// Job selector name
JobSelectorKey = "job"
)
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
)
const (
PDRetryTimeout = 5 * time.Minute
PDRetryPollTime = 5 * time.Second
VolumeSelectorKey = "e2e-pv-pool"
)
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
)
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
)
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 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
)
const (
NfsServerImage string = "gcr.io/google_containers/volume-nfs:0.8"
IscsiServerImage string = "gcr.io/google_containers/volume-iscsi:0.1"
GlusterfsServerImage string = "gcr.io/google_containers/volume-gluster:0.2"
CephServerImage string = "gcr.io/google_containers/volume-ceph:0.1"
RbdServerImage string = "gcr.io/google_containers/volume-rbd:0.1"
)
Current supported images for e2e volume testing to be assigned to VolumeTestConfig.serverImage
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
)
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.
const (
// TODO(mikedanese): reset this to 5 minutes once #47135 is resolved.
// ref https://github.com/kubernetes/kubernetes/issues/47135
DefaultNamespaceDeletionTimeout = 10 * time.Minute
)
const DefaultPodDeletionTimeout = 3 * time.Minute
const (
// NodeStartupThreshold is a rough estimate of the time allocated for a pod to start on a node.
NodeStartupThreshold = 4 * time.Second
)
Variables ¶
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)
)
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.
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",
}
var InterestingClusterAutoscalerMetrics = []string{
"function_duration_seconds",
"errors_total",
"evicted_pods_total",
}
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",
}
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",
}
var NetexecImageName = imageutils.GetE2EImage(imageutils.Netexec)
var ProvidersWithSSH = []string{"gce", "gke", "aws", "local"}
ProvidersWithSSH are those providers where each node is accessible with SSH
var RunId = uuid.NewUUID()
unique identifier of the e2e run
var ServiceNodePortRange = utilnet.PortRange{Base: 30000, Size: 2768}
This should match whatever the default/configured range is
Functions ¶
func AddOrUpdateAvoidPodOnNode ¶ added in v1.7.0
func AddOrUpdateAvoidPodOnNode(c clientset.Interface, nodeName string, avoidPods v1.AvoidPods)
AddOrUpdateAvoidPodOnNode adds avoidPods annotations to node, will override if it exists
func AddOrUpdateLabelOnNode ¶ added in v1.4.0
func AddOrUpdateLabelOnNode(c clientset.Interface, nodeName string, labelKey, labelValue string)
func AddOrUpdateLabelOnNodeAndReturnOldValue ¶ added in v1.8.0
func AddOrUpdateLabelOnNodeAndReturnOldValue(c clientset.Interface, nodeName string, labelKey, labelValue string) string
func AddOrUpdateTaintOnNode ¶ added in v1.4.0
func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taint v1.Taint)
func AfterReadingAllFlags ¶ added in v1.7.0
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 ¶ added in v1.6.0
func BindClusterRole(c v1beta1rbac.ClusterRoleBindingsGetter, clusterRole, ns string, subjects ...rbacv1beta1.Subject)
BindClusterRole binds the cluster role at the cluster scope
func BindClusterRoleInNamespace ¶ added in v1.6.0
func BindClusterRoleInNamespace(c v1beta1rbac.RoleBindingsGetter, clusterRole, ns string, subjects ...rbacv1beta1.Subject)
BindClusterRoleInNamespace binds the cluster role at the namespace scope
func BindRoleInNamespace ¶ added in v1.8.3
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 ¶ added in v1.6.0
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 ¶ added in v1.4.0
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 ¶ added in v1.9.0
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 ¶ added in v1.6.0
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 ¶ added in v1.9.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 CleanupGCEIngressController ¶ added in v1.6.0
func CleanupGCEIngressController(gceController *GCEIngressController)
CleanupGCEIngressController calls the GCEIngressController.Cleanup(false) followed with deleting the static ip, and then a final GCEIngressController.Cleanup(true)
func CleanupGCEResources ¶ added in v1.5.0
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 CleanupServiceGCEResources ¶ added in v1.6.0
func CleanupServiceGCEResources(c clientset.Interface, loadBalancerName, region, zone string)
func CleanupServiceResources ¶ added in v1.7.0
func CleanupServiceResources(c clientset.Interface, loadBalancerName, region, zone string)
func ClusterMonitoringModeIs ¶ added in v1.9.0
func ClusterMonitoringModeIs(monitoringModes ...string) bool
func CollectAddresses ¶ added in v1.6.0
func CollectAddresses(nodes *v1.NodeList, addressType v1.NodeAddressType) []string
func ConformanceIt ¶ added in v1.9.0
func ConformanceIt(text string, body interface{}, timeout ...float64) bool
Wrapper function for ginkgo It. Adds "[Conformance]" tag and makes static analysis easier.
func ConstructFirewallForLBService ¶ added in v1.6.0
func ConstructFirewallForLBService(svc *v1.Service, nodeTag string) *compute.Firewall
ConstructFirewallForLBService returns the expected GCE firewall rule for a loadbalancer type service
func ConstructHealthCheckFirewallForLBService ¶ added in v1.7.0
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 ¶ added in v1.6.0
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 ¶ added in v1.9.0
func CreateDeployment(client clientset.Interface, replicas int32, podLabels map[string]string, namespace string, pvclaims []*v1.PersistentVolumeClaim, command string) (*extensions.Deployment, error)
func CreateEmptyFileOnPod ¶ added in v1.7.0
func CreateEmptyFileOnPod(namespace string, podName string, filePath string) error
create empty file at given path on the pod.
func CreateExecPodOrFail ¶ added in v1.6.0
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 CreateGCEStaticIP ¶ added in v1.6.0
func CreateGCEStaticIP(name string) (string, error)
func CreateGCEVolume ¶ added in v1.9.0
func CreateGCEVolume() (*v1.PersistentVolumeSource, string)
func CreateJob ¶ added in v1.6.0
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 CreatePDWithRetry ¶ added in v1.6.0
func CreatePDWithRetry() (string, error)
func CreatePDWithRetryAndZone ¶ added in v1.7.0
func CreatePDWithRetryAndZone(zone string) (string, error)
func CreatePVC ¶ added in v1.6.0
func CreatePVC(c clientset.Interface, ns string, pvc *v1.PersistentVolumeClaim) (*v1.PersistentVolumeClaim, error)
create the PVC resource. Fails test on error.
func CreatePVCPV ¶ added in v1.6.0
func CreatePVCPV(c clientset.Interface, pvConfig PersistentVolumeConfig, pvcConfig PersistentVolumeClaimConfig, ns string, preBind bool) (*v1.PersistentVolume, *v1.PersistentVolumeClaim, error)
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 ¶ added in v1.6.0
func CreatePVPVC(c clientset.Interface, pvConfig PersistentVolumeConfig, pvcConfig PersistentVolumeClaimConfig, ns string, preBind bool) (*v1.PersistentVolume, *v1.PersistentVolumeClaim, error)
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 ¶ added in v1.7.0
func CreatePVSource(zone string) (*v1.PersistentVolumeSource, error)
func CreatePVsPVCs ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.6.0
func CreatePodOrFail(c clientset.Interface, ns, name string, labels map[string]string, containerPorts []v1.ContainerPort)
func CreatePrivilegedPSPBinding ¶ added in v1.8.3
func CreatePrivilegedPSPBinding(f *Framework, namespace string)
func CreateSecPod ¶ added in v1.8.0
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 ¶ added in v1.8.0
func CreateServiceSpec(serviceName, externalName string, isHeadless bool, selector map[string]string) *v1.Service
func CreateStatefulSetService ¶ added in v1.6.0
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 ¶ added in v1.8.0
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 CreateWaitAndDeletePod ¶ added in v1.6.0
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 ¶ added in v1.6.0
func DeleteAllStatefulSets(c clientset.Interface, ns string)
DeleteAllStatefulSets deletes all StatefulSet API Objects in Namespace ns.
func DeleteGCEStaticIP ¶ added in v1.6.0
func DeleteGCEStaticIP(name string) error
func DeleteJob ¶ added in v1.6.0
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 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 ¶ added in v1.6.0
func DeletePDWithRetry(diskName string) error
func DeletePVCandValidatePV ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.7.0
func DeletePVSource(pvSource *v1.PersistentVolumeSource) error
func DeletePersistentVolume ¶ added in v1.6.0
func DeletePersistentVolume(c clientset.Interface, pvName string) error
Delete the PV.
func DeletePersistentVolumeClaim ¶ added in v1.6.0
func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns string) error
Delete the Claim
func DeletePodOrFail ¶ added in v1.6.0
func DeletePodOrFail(c clientset.Interface, ns, name string)
func DeletePodWithWait ¶ added in v1.6.0
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 ¶ added in v1.4.0
func DeleteRCAndPods(clientset clientset.Interface, internalClientset internalclientset.Interface, ns, name string) error
func DeleteRCAndWaitForGC ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
func DescribeIng(ns string)
func DescribeSvc ¶ added in v1.6.0
func DescribeSvc(ns string)
func DsFromManifest ¶ added in v1.8.1
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 ¶ added in v1.8.0
func DumpDebugInfo(c clientset.Interface, ns string)
func DumpEventsInNamespace ¶ added in v1.5.0
func DumpEventsInNamespace(eventsLister EventsLister, namespace string)
func DumpNodeDebugInfo ¶
func DumpNodeDebugInfo(c clientset.Interface, nodeNames []string, logFunc func(fmt string, args ...interface{}))
func EnableAndDisableInternalLB ¶ added in v1.7.3
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 ¶ added in v1.5.4
func EtcdUpgrade(target_storage, target_version string) error
func ExpectNoError ¶
func ExpectNoError(err error, explain ...interface{})
func ExpectNoErrorWithOffset ¶ added in v1.7.0
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 ¶ added in v1.4.0
func ExpectNoErrorWithRetries(fn func() error, maxRetries int, explain ...interface{})
func ExpectNodeHasLabel ¶ added in v1.4.0
func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string, labelValue string)
func ExpectNodeHasTaint ¶ added in v1.4.0
func ExpectNodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint)
func FailfWithOffset ¶ added in v1.7.0
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 GcloudComputeResourceCreate ¶ added in v1.6.0
func GcloudComputeResourceCreate(resource, name, project string, args ...string) error
GcloudComputeResourceCreate creates a compute resource with a name and arguments.
func GcloudComputeResourceDelete ¶ added in v1.6.0
func GcloudComputeResourceDelete(resource, name, project string, args ...string) error
GcloudComputeResourceDelete deletes the specified compute resource by name and project.
func GenerateMasterRegexp ¶ added in v1.5.0
func GenerateMasterRegexp(prefix string) string
func GetAzureCloud ¶ added in v1.7.0
func GetAzureCloud() (*azure.Cloud, error)
GetAzureCloud returns azure cloud provider
func GetClusterID ¶ added in v1.7.0
func GetClusterID(c clientset.Interface) (string, error)
func GetClusterName ¶ added in v1.6.0
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 ¶ added in v1.7.16
func GetClusterZones(c clientset.Interface) (sets.String, error)
func GetE2eFirewalls ¶ added in v1.6.0
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 ¶ added in v1.6.0
func GetGCECloud() (*gcecloud.GCECloud, error)
func GetGPUDevicePluginImage ¶ added in v1.8.1
func GetGPUDevicePluginImage() string
func GetGroupNodes ¶ added in v1.7.0
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 ¶ added in v1.6.0
func GetIngressPoint(ing *v1.LoadBalancerIngress) string
func GetInstancePrefix ¶ added in v1.6.0
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 ¶ added in v1.6.0
func GetInstanceTags(cloudConfig CloudConfig, instanceName string) *compute.Tags
GetInstanceTags gets tags from GCE instance with given name.
func GetJob ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.5.0
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 ¶ added in v1.4.0
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 ¶ added in v1.6.0
func GetNodeAddresses(node *v1.Node, addressType v1.NodeAddressType) (ips []string)
func GetNodeExternalIP ¶ added in v1.5.0
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 ¶ added in v1.6.0
func GetNodePublicIps(c clientset.Interface) ([]string, error)
func GetNodeTTLAnnotationValue ¶ added in v1.8.0
func GetNodeTTLAnnotationValue(c clientset.Interface) (time.Duration, error)
func GetNodeTags ¶ added in v1.6.0
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 GetPauseImageNameForHostArch ¶
func GetPauseImageNameForHostArch() string
GetPauseImageNameForHostArch fetches the pause image name for the same architecture the test is running on. TODO: move this function to the test/utils
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 ¶ added in v1.8.0
func GetPodSecretUpdateTimeout(c clientset.Interface) time.Duration
func GetPodsForDeployment ¶ added in v1.9.0
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 ¶ added in v1.4.0
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 ¶ added in v1.8.0
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 InjectHtml ¶ added in v1.7.0
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 ¶ added in v1.6.0
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 ¶ added in v1.8.3
func IsPodSecurityPolicyEnabled(f *Framework) bool
func IsRBACEnabled ¶ added in v1.8.3
func IsRBACEnabled(f *Framework) bool
func IsRetryableAPIError ¶ added in v1.8.0
func IsRetryableAPIError(err error) 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 ¶ added in v1.4.0
func ListNamespaceEvents(c clientset.Interface, ns string) error
func LoadClientset ¶ added in v1.5.0
func LoadClientset() (*clientset.Clientset, error)
func LoadConfig ¶
func LoadConfig() (*restclient.Config, error)
func LoadInternalClientset ¶ added in v1.5.0
func LoadInternalClientset() (*internalclientset.Clientset, error)
func LogClusterImageSources ¶ added in v1.5.8
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 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 ¶ added in v1.9.0
func MakeDeployment(replicas int32, podLabels 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 ¶ added in v1.6.0
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 ¶ added in v1.7.0
func MakeHealthCheckFirewallNameForLBService(clusterID, name string, isNodesHealthCheck bool) string
func MakePersistentVolume ¶ added in v1.7.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.8.0
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 ¶ added in v1.6.0
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 ¶ added in v1.8.0
func MasterOSDistroIs(supportedMasterOsDistros ...string) bool
func MasterUpgrade ¶
func MasterUpgrade(v string) error
func MasterUpgradeGCEWithKubeProxyDaemonSet ¶ added in v1.8.0
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 ¶ added in v1.8.1
func NVIDIADevicePlugin(ns string) *v1.Pod
NVIDIADevicePlugin returns the official Google Device Plugin pod for NVIDIA GPU in GKE
func NewDeployment ¶ added in v1.6.0
func NewDeployment(deploymentName string, replicas int32, podLabels map[string]string, imageName, image string, strategyType extensions.DeploymentStrategyType) *extensions.Deployment
func NewE2ETestNodePreparer ¶ added in v1.5.0
func NewE2ETestNodePreparer(client clientset.Interface, countToStrategy []testutil.CountToStrategy) testutil.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 ¶ added in v1.9.0
func NewReplicaSet(name, namespace string, replicas int32, podLabels map[string]string, imageName, image string) *extensions.ReplicaSet
func NewResourceUsageGatherer ¶
func NewResourceUsageGatherer(c clientset.Interface, options ResourceGathererOptions, pods *v1.PodList) (*containerResourceGatherer, error)
func NewStatefulSet ¶ added in v1.6.0
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 ¶ added in v1.6.0
func NewStatefulSetPVC(name string) v1.PersistentVolumeClaim
NewStatefulSetPVC returns a PersistentVolumeClaim named name, for testing StatefulSets.
func NewStatefulSetScale ¶ added in v1.8.0
func NewStatefulSetScale(ss *apps.StatefulSet) *appsV1beta2.Scale
NewStatefulSetScale creates a new StatefulSet scale subresource and returns it
func NewTestJob ¶ added in v1.6.0
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 ¶ added in v1.6.0
func NodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) (bool, error)
func NodeOSDistroIs ¶ added in v1.6.0
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 ¶ added in v1.8.0
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 ¶ added in v1.8.1
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 ¶ added in v1.8.0
func NumberOfReadyNodes(c clientset.Interface) (int, error)
NumberOfReadyNodes returns number of ready Nodes excluding Master Node.
func NumberOfRegisteredNodes ¶ added in v1.8.12
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.5.0
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 ¶ added in v1.6.0
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 ¶ added in v1.7.0
func PrintSummaries(summaries []TestDataSummary, testBaseName string)
func PrivilegedPSP ¶ added in v1.8.3
func PrivilegedPSP(name string) *extensionsv1beta1.PodSecurityPolicy
Creates a PodSecurityPolicy that allows everything.
func ProviderIs ¶
func ProviderIs(providers ...string) bool
func RcByNameContainer ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.4.0
func RegisterClusterFlags()
Register flags specific to the cluster e2e test suite.
func RegisterCommonFlags ¶ added in v1.4.0
func RegisterCommonFlags()
Register flags common to all e2e test suites.
func RegisterNodeFlags ¶ added in v1.4.0
func RegisterNodeFlags()
Register flags specific to the node e2e test suite.
func RemoveAvoidPodsOffNode ¶ added in v1.7.0
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 ¶ added in v1.4.0
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 ¶ added in v1.4.0
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 ¶ added in v1.7.0
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 ¶ added in v1.4.0
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(c discovery.ServerVersionInterface) error
func RestartControllerManager ¶ added in v1.8.0
func RestartControllerManager() error
func RestartKubeProxy ¶
func RestartKubeProxy(host string) error
func RestartKubelet ¶ added in v1.8.0
func RestartKubelet(host string) error
func RestclientConfig ¶ added in v1.6.0
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 ¶ added in v1.5.4
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 ¶ added in v1.7.6
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 ¶ added in v1.6.8
func RunIfContainerRuntimeIs(runtimes ...string)
func RunIfSystemSpecNameIs ¶ added in v1.6.8
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 RunReplicaSet ¶
func RunReplicaSet(config testutils.ReplicaSetConfig) error
func SameStringArray ¶ added in v1.6.0
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 ¶ added in v1.5.0
func ScaleDeployment(clientset clientset.Interface, internalClientset internalclientset.Interface, ns, name string, size uint, wait bool) error
func ScaleRC ¶
func ScaleRC(clientset clientset.Interface, internalClientset internalclientset.Interface, ns, name string, size uint, wait bool) error
func ScaleRCByLabels ¶
func ScaleRCByLabels(clientset clientset.Interface, internalClientset internalclientset.Interface, ns string, l map[string]string, replicas uint) error
ScaleRCByLabels scales an RC via ns/label lookup. If replicas == 0 it waits till none are running, otherwise it does what a synchronous scale operation would do.
func ScaleResource ¶ added in v1.6.0
func ScaleResource(
clientset clientset.Interface,
internalClientset internalclientset.Interface,
ns, name string,
size uint,
wait bool,
kind schema.GroupKind,
) 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 ¶ added in v1.6.0
func SetInstanceTags(cloudConfig CloudConfig, instanceName, zone string, tags []string) []string
SetInstanceTags sets tags on GCE instance with given name.
func SimpleGET ¶ added in v1.6.0
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 ¶ added in v1.4.0
func SkipIfContainerRuntimeIs(runtimes ...string)
func SkipIfMissingResource ¶ added in v1.4.1
func SkipIfMissingResource(clientPool dynamic.ClientPool, gvr schema.GroupVersionResource, namespace string)
func SkipIfMultizone ¶ added in v1.7.16
func SkipIfMultizone(c clientset.Interface)
func SkipIfProviderIs ¶
func SkipIfProviderIs(unsupportedProviders ...string)
func SkipUnlessAtLeast ¶
func SkipUnlessAtLeast(value int, minValue int, message string)
func SkipUnlessClusterMonitoringModeIs ¶ added in v1.9.0
func SkipUnlessClusterMonitoringModeIs(supportedMonitoring ...string)
func SkipUnlessKubectlVersionGTE ¶ added in v1.3.8
func SkipUnlessKubectlVersionGTE(v *utilversion.Version)
func SkipUnlessLocalEphemeralStorageEnabled ¶ added in v1.9.0
func SkipUnlessLocalEphemeralStorageEnabled()
func SkipUnlessMasterOSDistroIs ¶ added in v1.8.0
func SkipUnlessMasterOSDistroIs(supportedMasterOsDistros ...string)
func SkipUnlessNodeCountIsAtLeast ¶
func SkipUnlessNodeCountIsAtLeast(minNodeCount int)
func SkipUnlessNodeCountIsAtMost ¶ added in v1.6.0
func SkipUnlessNodeCountIsAtMost(maxNodeCount int)
func SkipUnlessNodeOSDistroIs ¶ added in v1.6.0
func SkipUnlessNodeOSDistroIs(supportedNodeOsDistros ...string)
func SkipUnlessProviderIs ¶
func SkipUnlessProviderIs(supportedProviders ...string)
func SkipUnlessSSHKeyPresent ¶ added in v1.6.4
func SkipUnlessSSHKeyPresent()
func SkipUnlessServerVersionGTE ¶
func SkipUnlessServerVersionGTE(v *utilversion.Version, c discovery.ServerVersionInterface)
func StartCmdAndStreamOutput ¶
func StartCmdAndStreamOutput(cmd *exec.Cmd) (stdout, stderr io.ReadCloser, err error)
func StartServeHostnameService ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
func TestHitNodesFromOutside(externalIP string, httpPort int32, timeout time.Duration, expectedHosts sets.String) error
func TestHitNodesFromOutsideWithCount ¶ added in v1.6.0
func TestHitNodesFromOutsideWithCount(externalIP string, httpPort int32, timeout time.Duration, expectedHosts sets.String,
countToSucceed int) error
func TestNotReachableHTTP ¶ added in v1.6.0
func TestNotReachableHTTP(ip string, port int) (bool, error)
func TestNotReachableHTTPTimeout ¶ added in v1.6.0
func TestNotReachableHTTPTimeout(ip string, port int, timeout time.Duration) (bool, error)
func TestNotReachableUDP ¶ added in v1.6.0
func TestNotReachableUDP(ip string, port int, request string) (bool, error)
func TestReachableHTTP ¶ added in v1.6.0
func TestReachableHTTP(ip string, port int, request string, expect string) (bool, error)
func TestReachableHTTPWithContent ¶ added in v1.6.0
func TestReachableHTTPWithContent(ip string, port int, request string, expect string, content *bytes.Buffer) (bool, error)
func TestReachableHTTPWithContentTimeout ¶ added in v1.6.0
func TestReachableHTTPWithContentTimeout(ip string, port int, request string, expect string, content *bytes.Buffer, timeout time.Duration) (bool, error)
func TestReachableHTTPWithContentTimeoutWithRetriableErrorCodes ¶ added in v1.8.0
func TestReachableHTTPWithContentTimeoutWithRetriableErrorCodes(ip string, port int, request string, expect string, content *bytes.Buffer, retriableErrCodes []int, timeout time.Duration) (bool, error)
func TestReachableHTTPWithRetriableErrorCodes ¶ added in v1.8.0
func TestReachableHTTPWithRetriableErrorCodes(ip string, port int, request string, expect string, retriableErrCodes []int) (bool, error)
func TestReachableUDP ¶ added in v1.6.0
func TestReachableUDP(ip string, port int, request string, expect string) (bool, error)
func TestUnderTemporaryNetworkFailure ¶ added in v1.7.0
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 ¶ added in v1.7.0
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 ¶ added in v1.7.0
func UpdateDaemonSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateDSFunc) (ds *extensions.DaemonSet, err error)
func UpdateDeploymentWithRetries ¶
func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateDeploymentFunc) (*extensions.Deployment, error)
func UpdateJob ¶ added in v1.6.0
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 ¶ added in v1.7.0
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 ¶ added in v1.5.0
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 ¶ added in v1.5.0
func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate testutils.UpdateReplicaSetFunc) (*extensions.ReplicaSet, error)
func UpdateReplicationControllerWithRetries ¶ added in v1.5.0
func UpdateReplicationControllerWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateRcFunc) (*v1.ReplicationController, error)
func UpdateService ¶ added in v1.6.0
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 ¶ added in v1.5.0
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 ¶ added in v1.6.0
func ValidateEndpointsOrFail(c clientset.Interface, namespace, serviceName string, expectedEndpoints PortsByPodName)
func VerifyFirewallRule ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
func VerifyPodsRunning(c clientset.Interface, ns, name string, wantName bool, replicas int32) error
func VerifyServeHostnameServiceDown ¶ added in v1.6.0
func VerifyServeHostnameServiceDown(c clientset.Interface, host string, serviceIP string, servicePort int) error
func VerifyServeHostnameServiceUp ¶ added in v1.6.0
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 ¶ added in v1.6.0
func VerifyThatTaintIsGone(c clientset.Interface, nodeName string, taint *v1.Taint)
func ViperizeFlags ¶ added in v1.5.0
func ViperizeFlags()
ViperizeFlags sets up all flag and config processing. Future configuration info should be added to viper, not to flags.
func VolumeTestCleanup ¶ added in v1.7.0
func VolumeTestCleanup(f *Framework, config VolumeTestConfig)
Clean both server and client pods.
func WaitAndVerifyBinds ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.9.0
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 ¶ added in v1.6.0
func WaitForControlledPodsRunning(c clientset.Interface, ns, name string, kind schema.GroupKind) error
Wait up to 10 minutes for pods to become Running.
func WaitForControllerManagerUp ¶ added in v1.8.0
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 ¶ added in v1.9.0
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 ¶ added in v1.9.0
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 ¶ added in v1.9.0
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 WaitForDeploymentUpdatedReplicasLTE ¶
func WaitForDeploymentUpdatedReplicasLTE(c clientset.Interface, ns, deploymentName string, minUpdatedReplicas int32, desiredGeneration int64) error
WaitForDeploymentUpdatedReplicasLTE waits for given deployment to be observed by the controller and has at least a number of updatedReplicas
func WaitForDeploymentWithCondition ¶ added in v1.5.0
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 ¶ added in v1.7.0
func WaitForFirewallRule(gceCloud *gcecloud.GCECloud, fwName string, exist bool, timeout time.Duration) (*compute.Firewall, error)
func WaitForGroupSize ¶ added in v1.7.0
func WaitForGroupSize(group string, size int32) error
func WaitForIngressAddress ¶
func WaitForIngressAddress(c clientset.Interface, ns, ingName string, timeout time.Duration) (string, error)
WaitForIngressAddress waits for the Ingress to acquire an address.
func WaitForJobFailure ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.8.0
func WaitForKubeletUp(host string) error
func WaitForMasters ¶ added in v1.5.0
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 ¶ added in v1.8.3
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 ¶ added in v1.7.0
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 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 ¶ added in v1.6.0
func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeout time.Duration, condition podCondition) error
func WaitForPodNameRunningInNamespace ¶ added in v1.4.0
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 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 ¶ added in v1.6.0
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 ¶ added in v1.8.0
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 ¶ added in v1.6.0
func WaitForReadyReplicaSet(c clientset.Interface, ns, name string) error
WaitForReadyReplicaSet waits until the replicaset has all of its replicas ready.
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 ¶ added in v1.6.0
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 ¶ added in v1.6.0
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 ¶ added in v1.4.0
func WaitForStableCluster(c clientset.Interface, masterNodes sets.String) int
WaitForStableCluster waits until all existing pods are scheduled and returns their amount.
func WaitOnPVandPVC ¶ added in v1.6.0
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 ¶ added in v1.4.0
func WaitTimeoutForPodNoLongerRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error
func WaitTimeoutForPodRunningInNamespace ¶ added in v1.7.14
func WaitTimeoutForPodRunningInNamespace(c clientset.Interface, podName, namespace string, timeout time.Duration) error
func WatchRecreateDeployment ¶ added in v1.6.0
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) PrintHumanReadable ¶ added in v1.7.0
func (a *APIResponsiveness) PrintHumanReadable() string
func (*APIResponsiveness) PrintJSON ¶ added in v1.7.0
func (a *APIResponsiveness) PrintJSON() string
func (*APIResponsiveness) SummaryKind ¶ added in v1.7.0
func (a *APIResponsiveness) SummaryKind() string
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 ContainerResourceUsage ¶
type ContainerResourceUsage struct {
Name string
Timestamp time.Time
CPUUsageInCores float64
MemoryUsageInBytes uint64
MemoryWorkingSetInBytes uint64
MemoryRSSInBytes uint64
// The interval used to calculate CPUUsageInCores.
CPUInterval time.Duration
}
type ContainersCPUSummary ¶
type ContainersCPUSummary map[string]map[float64]float64
ContainersCPUSummary is indexed by the container name with each entry a (percentile, value) map.
type CreateTestingNSFn ¶
type CreateTestingNSFn func(baseName string, c clientset.Interface, labels map[string]string) (*v1.Namespace, error)
type E2ETestNodePreparer ¶ added in v1.5.0
type E2ETestNodePreparer struct {
// contains filtered or unexported fields
}
E2ETestNodePreparer implements testutil.TestNodePreparer interface, which is used to create/modify Nodes before running a test.
func (*E2ETestNodePreparer) CleanupNodes ¶ added in v1.5.0
func (p *E2ETestNodePreparer) CleanupNodes() error
func (*E2ETestNodePreparer) PrepareNodes ¶ added in v1.5.0
func (p *E2ETestNodePreparer) PrepareNodes() error
type EventsLister ¶ added in v1.5.0
type EventsLister func(opts metav1.ListOptions, ns string) (*v1.EventList, error)
type ExecOptions ¶ added in v1.5.0
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
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 ¶ added in v1.4.6
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 ¶ added in v1.4.0
func (f *Framework) ExecCommandInContainer(podName, containerName string, cmd ...string) string
ExecCommandInContainer executes a command in the specified container.
func (*Framework) ExecCommandInContainerWithFullOutput ¶ added in v1.5.0
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 ¶ added in v1.4.0
func (f *Framework) ExecCommandInPod(podName string, cmd ...string) string
func (*Framework) ExecCommandInPodWithFullOutput ¶ added in v1.5.0
func (f *Framework) ExecCommandInPodWithFullOutput(podName string, cmd ...string) (string, string, error)
func (*Framework) ExecShellInContainer ¶ added in v1.4.0
func (f *Framework) ExecShellInContainer(podName, containerName string, cmd string) string
func (*Framework) ExecShellInPod ¶ added in v1.4.0
func (f *Framework) ExecShellInPod(podName string, cmd string) string
func (*Framework) ExecShellInPodWithFullOutput ¶ added in v1.5.0
func (f *Framework) ExecShellInPodWithFullOutput(podName string, cmd string) (string, string, error)
func (*Framework) ExecWithOptions ¶ added in v1.5.0
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 ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.9.0
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 ¶ added in v1.6.0
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 ¶ added in v1.9.0
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 ¶ added in v1.9.0
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 ¶ added in v1.6.0
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) CreateStaticIP ¶ added in v1.6.0
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 ¶ added in v1.6.0
func (cont *GCEIngressController) GetFirewallRule() *compute.Firewall
GetFirewallRule returns the firewall used by the GCEIngressController.
func (*GCEIngressController) GetFirewallRuleName ¶ added in v1.6.0
func (cont *GCEIngressController) GetFirewallRuleName() string
GetFirewallRuleName returns the name of the firewall used for the GCEIngressController.
type IngressConformanceTests ¶ added in v1.6.0
type IngressConformanceTests struct {
EntryLog string
Execute func()
ExitLog string
}
IngressConformanceTests contains a closure with an entry and exit log line.
func CreateIngressComformanceTests ¶ added in v1.6.0
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 ¶ added in v1.6.0
type IngressTestJig struct {
Client clientset.Interface
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 ¶ added in v1.6.0
func NewIngressTestJig(c clientset.Interface) *IngressTestJig
NewIngressTestJig instantiates struct with client
func (*IngressTestJig) AddHTTPS ¶ added in v1.6.0
func (j *IngressTestJig) AddHTTPS(secretName string, hosts ...string)
AddHTTPS updates the ingress to use this secret for these hosts.
func (*IngressTestJig) ConstructFirewallForIngress ¶ added in v1.6.0
func (j *IngressTestJig) ConstructFirewallForIngress(gceController *GCEIngressController, nodeTags []string) *compute.Firewall
ConstructFirewallForIngress returns the expected GCE firewall rule for the ingress resource
func (*IngressTestJig) CreateIngress ¶ added in v1.6.0
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) GetDistinctResponseFromIngress ¶ added in v1.9.0
func (j *IngressTestJig) GetDistinctResponseFromIngress() (sets.String, error)
GetDistinctResponseFromIngress tries GET call to the ingress VIP and return all distinct responses.
func (*IngressTestJig) GetIngressNodePorts ¶ added in v1.6.0
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 ¶ added in v1.6.0
func (j *IngressTestJig) GetRootCA(secretName string) (rootCA []byte)
GetRootCA returns a rootCA from the ingress test jig.
func (*IngressTestJig) TryDeleteIngress ¶ added in v1.7.1
func (j *IngressTestJig) TryDeleteIngress()
TryDeleteIngress attempts to delete the ingress resource and logs errors if they occur.
func (*IngressTestJig) Update ¶ added in v1.6.0
func (j *IngressTestJig) Update(update func(ing *extensions.Ingress))
Update retrieves the ingress, performs the passed function, and then updates it.
func (*IngressTestJig) VerifyURL ¶ added in v1.6.0
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) WaitForIngress ¶ added in v1.6.0
func (j *IngressTestJig) WaitForIngress(waitForNodePort bool)
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.
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 ¶ added in v1.6.0
func (kc *KubeConfig) FindCluster(name string) *KubeCluster
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 ¶ added in v1.7.0
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.
type KubemarkResourceUsage ¶ added in v1.6.0
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
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) 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) SummaryKind ¶ added in v1.7.0
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
type MetricsForE2E ¶
type MetricsForE2E metrics.MetricsCollection
func (*MetricsForE2E) PrintHumanReadable ¶
func (m *MetricsForE2E) PrintHumanReadable() string
func (*MetricsForE2E) SummaryKind ¶ added in v1.7.0
func (m *MetricsForE2E) SummaryKind() string
type NetworkingTestConfig ¶ added in v1.5.0
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 ¶ added in v1.5.0
func NewCoreNetworkingTestConfig(f *Framework) *NetworkingTestConfig
NewNetworkingTestNodeE2EConfig creates and sets up a new test config helper for Node E2E.
func NewNetworkingTestConfig ¶ added in v1.5.0
func NewNetworkingTestConfig(f *Framework) *NetworkingTestConfig
NewNetworkingTestConfig creates and sets up a new test config helper.
func (*NetworkingTestConfig) DeleteNetProxyPod ¶ added in v1.5.0
func (config *NetworkingTestConfig) DeleteNetProxyPod()
func (*NetworkingTestConfig) DeleteNodePortService ¶ added in v1.5.0
func (config *NetworkingTestConfig) DeleteNodePortService()
func (*NetworkingTestConfig) DialFromContainer ¶ added in v1.5.0
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 ¶ added in v1.5.0
func (config *NetworkingTestConfig) DialFromEndpointContainer(protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String)
func (*NetworkingTestConfig) DialFromNode ¶ added in v1.5.0
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 ¶ added in v1.5.0
func (config *NetworkingTestConfig) DialFromTestContainer(protocol, targetIP string, targetPort, maxTries, minTries int, expectedEps sets.String)
func (*NetworkingTestConfig) EndpointHostnames ¶ added in v1.5.0
func (config *NetworkingTestConfig) EndpointHostnames() sets.String
EndpointHostnames returns a set of hostnames for existing endpoints.
func (*NetworkingTestConfig) GetEndpointsFromContainer ¶ added in v1.9.0
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 ¶ added in v1.9.0
func (config *NetworkingTestConfig) GetEndpointsFromTestContainer(protocol, targetIP string, targetPort, tries int) (sets.String, error)
func (*NetworkingTestConfig) GetSelfURL ¶ added in v1.5.0
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 ¶ added in v1.8.0
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 ¶ added in v1.6.0
type NginxIngressController struct {
Ns string
Client clientset.Interface
// contains filtered or unexported fields
}
NginxIngressController manages implementation details of Ingress on Nginx.
type NodeRuntimeOperationErrorRate ¶
type NodeRuntimeOperationErrorRate map[string]*RuntimeOperationErrorRate
NodeRuntimeOperationErrorRate is the runtime operation error rate on one node.
type NodeTestContextType ¶ added in v1.4.0
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 PersistentVolumeClaimConfig ¶ added in v1.7.0
type PersistentVolumeClaimConfig struct {
AccessModes []v1.PersistentVolumeAccessMode
Annotations map[string]string
Selector *metav1.LabelSelector
StorageClassName *string
}
type PersistentVolumeConfig ¶ added in v1.6.0
type PersistentVolumeConfig struct {
PVSource v1.PersistentVolumeSource
Prebind *v1.PersistentVolumeClaim
ReclaimPolicy v1.PersistentVolumeReclaimPolicy
NamePrefix string
Labels labels.Set
StorageClassName string
NodeAffinity *v1.NodeAffinity
}
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 ¶ added in v1.9.0
type PingCommand string
const (
IPv4PingCommand PingCommand = "ping"
IPv6PingCommand PingCommand = "ping6"
)
type PodClient ¶ added in v1.4.0
type PodClient struct {
v1core.PodInterface
// contains filtered or unexported fields
}
func (*PodClient) Create ¶ added in v1.4.0
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 ¶ added in v1.4.0
func (c *PodClient) CreateBatch(pods []*v1.Pod) []*v1.Pod
CreateBatch create a batch of pods. All pods are created before waiting.
func (*PodClient) CreateSync ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.5.0
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 ¶ added in v1.6.0
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 ¶ added in v1.5.0
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 ¶ added in v1.4.0
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 ¶ added in v1.6.0
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 ¶ added in v1.8.0
func (c *PodClient) WaitForFailure(name string, timeout time.Duration)
WaitForFailure waits for pod to fail.
func (*PodClient) WaitForSuccess ¶ added in v1.5.0
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 ¶ added in v1.7.0
func (l *PodStartupLatency) PrintHumanReadable() string
func (*PodStartupLatency) PrintJSON ¶ added in v1.7.0
func (l *PodStartupLatency) PrintJSON() string
func (*PodStartupLatency) SummaryKind ¶ added in v1.7.0
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 can be used to declaratively identify those pods.
type PortsByPodName ¶ added in v1.6.0
type PortsByPodName map[string][]int
type PortsByPodUID ¶ added in v1.6.0
type PortsByPodUID map[types.UID][]int
func GetContainerPortsByPodUID ¶ added in v1.6.0
func GetContainerPortsByPodUID(endpoints *v1.Endpoints) PortsByPodUID
type ResourceConstraint ¶
type ResourceConstraint struct {
CPUConstraint float64
MemoryConstraint uint64
}
type ResourceGathererOptions ¶
type ResourceGathererOptions struct {
InKubemark bool
MasterOnly bool
ResourceDataGatheringPeriod time.Duration
ProbeDuration time.Duration
PrintVerboseLogs bool
}
type ResourceMonitor ¶
type ResourceMonitor struct {
// contains filtered or unexported fields
}
ResourceMonitor manages a resourceCollector per node.
func NewResourceMonitor ¶
func NewResourceMonitor(c clientset.Interface, containerNames []string, pollingInterval time.Duration) *ResourceMonitor
func (*ResourceMonitor) FormatCPUSummary ¶
func (r *ResourceMonitor) FormatCPUSummary(summary NodesCPUSummary) string
func (*ResourceMonitor) FormatResourceUsage ¶
func (r *ResourceMonitor) FormatResourceUsage(s ResourceUsagePerNode) string
func (*ResourceMonitor) GetCPUSummary ¶
func (r *ResourceMonitor) GetCPUSummary() NodesCPUSummary
func (*ResourceMonitor) GetLatest ¶
func (r *ResourceMonitor) GetLatest() (ResourceUsagePerNode, error)
func (*ResourceMonitor) GetMasterNodeCPUSummary ¶
func (r *ResourceMonitor) GetMasterNodeCPUSummary(summaryPerNode NodesCPUSummary) NodesCPUSummary
func (*ResourceMonitor) GetMasterNodeLatest ¶
func (r *ResourceMonitor) GetMasterNodeLatest(usagePerNode ResourceUsagePerNode) ResourceUsagePerNode
func (*ResourceMonitor) LogCPUSummary ¶
func (r *ResourceMonitor) LogCPUSummary()
type ResourceUsagePerContainer ¶
type ResourceUsagePerContainer map[string]*ContainerResourceUsage
type ResourceUsagePerNode ¶
type ResourceUsagePerNode map[string]ResourceUsagePerContainer
type ResourceUsageSummary ¶
type ResourceUsageSummary map[string][]SingleContainerSummary
we can't have int here, as JSON does not accept integer keys.
func (*ResourceUsageSummary) PrintHumanReadable ¶
func (s *ResourceUsageSummary) PrintHumanReadable() string
func (*ResourceUsageSummary) SummaryKind ¶ added in v1.7.0
func (s *ResourceUsageSummary) SummaryKind() string
type RuntimeOperationErrorRate ¶
type RuntimeOperationErrorRate struct {
TotalNumber float64
ErrorRate float64
TimeoutRate float64
}
RuntimeOperationErrorRate is the error rate of a specified runtime operation.
type RuntimeOperationMonitor ¶
type RuntimeOperationMonitor struct {
// contains filtered or unexported fields
}
RuntimeOperationMonitor is the tool getting and parsing docker operation metrics.
func NewRuntimeOperationMonitor ¶
func NewRuntimeOperationMonitor(c clientset.Interface) *RuntimeOperationMonitor
func (*RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate ¶
func (m *RuntimeOperationMonitor) GetLatestRuntimeOperationErrorRate() map[string]NodeRuntimeOperationErrorRate
GetLatestRuntimeOperationErrorRate gets latest error rate and timeout rate from last observed RuntimeOperationErrorRate.
func (*RuntimeOperationMonitor) GetRuntimeOperationErrorRate ¶
func (m *RuntimeOperationMonitor) GetRuntimeOperationErrorRate() map[string]NodeRuntimeOperationErrorRate
GetRuntimeOperationErrorRate gets runtime operation records from kubelet metrics and calculate error rates of all runtime operations.
type SSHResult ¶
type SSHResult struct {
User string
Host string
Cmd string
Stdout string
Stderr string
Code int
}
func IssueSSHCommandWithResult ¶ added in v1.4.6
func IssueSSHCommandWithResult(cmd, provider string, node *v1.Node) (*SSHResult, error)
func NodeExec ¶ added in v1.7.0
func NodeExec(nodeName, cmd string) (SSHResult, error)
NodeExec execs the given cmd on node via SSH. Note that the nodeName is an sshable name, eg: the name returned by framework.GetMasterHost(). This is also not guaranteed to work across cloud providers since it involves ssh.
type SaturationTime ¶
type SaturationTime struct {
TimeToSaturate time.Duration `json:"timeToSaturate"`
NumberOfNodes int `json:"numberOfNodes"`
NumberOfPods int `json:"numberOfPods"`
Throughput float32 `json:"throughput"`
}
type SchedulingLatency ¶
type SchedulingLatency struct {
Scheduling LatencyMetric `json:"scheduling"`
Binding LatencyMetric `json:"binding"`
Total LatencyMetric `json:"total"`
}
func VerifySchedulerLatency ¶
func VerifySchedulerLatency(c clientset.Interface) (*SchedulingLatency, error)
Verifies (currently just by logging them) the scheduling latencies.
func (*SchedulingLatency) PrintHumanReadable ¶ added in v1.7.0
func (l *SchedulingLatency) PrintHumanReadable() string
func (*SchedulingLatency) PrintJSON ¶ added in v1.7.0
func (l *SchedulingLatency) PrintJSON() string
func (*SchedulingLatency) SummaryKind ¶ added in v1.7.0
func (l *SchedulingLatency) SummaryKind() string
type ServiceTestFixture ¶ added in v1.6.0
type ServiceTestFixture struct {
ServiceName string
Namespace string
Client clientset.Interface
TestId string
Labels map[string]string
Name string
Image string
// contains filtered or unexported fields
}
Simple helper class to avoid too much boilerplate in tests
func NewServerTest ¶ added in v1.6.0
func NewServerTest(client clientset.Interface, namespace string, serviceName string) *ServiceTestFixture
func (*ServiceTestFixture) BuildServiceSpec ¶ added in v1.6.0
func (t *ServiceTestFixture) BuildServiceSpec() *v1.Service
Build default config for a service (which can then be changed)
func (*ServiceTestFixture) CreateRC ¶ added in v1.6.0
func (t *ServiceTestFixture) CreateRC(rc *v1.ReplicationController) (*v1.ReplicationController, error)
CreateRC creates a replication controller and records it for cleanup.
func (*ServiceTestFixture) CreateService ¶ added in v1.6.0
func (t *ServiceTestFixture) CreateService(service *v1.Service) (*v1.Service, error)
Create a service, and record it for cleanup
func (*ServiceTestFixture) CreateWebserverRC ¶ added in v1.6.0
func (t *ServiceTestFixture) CreateWebserverRC(replicas int32) *v1.ReplicationController
CreateWebserverRC creates rc-backed pods with the well-known webserver configuration and records it for cleanup.
func (*ServiceTestFixture) DeleteService ¶ added in v1.6.0
func (t *ServiceTestFixture) DeleteService(serviceName string) error
Delete a service, and remove it from the cleanup list
type ServiceTestJig ¶ added in v1.6.0
type ServiceTestJig struct {
ID string
Name string
Client clientset.Interface
Labels map[string]string
}
A test jig to help service testing.
func NewServiceTestJig ¶ added in v1.6.0
func NewServiceTestJig(client clientset.Interface, name string) *ServiceTestJig
NewServiceTestJig allocates and inits a new ServiceTestJig.
func (*ServiceTestJig) AddRCAntiAffinity ¶ added in v1.7.0
func (j *ServiceTestJig) AddRCAntiAffinity(rc *v1.ReplicationController)
func (*ServiceTestJig) ChangeServiceNodePortOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) ChangeServiceNodePortOrFail(namespace, name string, initial int) *v1.Service
func (*ServiceTestJig) ChangeServiceType ¶ added in v1.6.0
func (j *ServiceTestJig) ChangeServiceType(namespace, name string, newType v1.ServiceType, timeout time.Duration)
func (*ServiceTestJig) CreateExternalNameServiceOrFail ¶ added in v1.8.0
func (j *ServiceTestJig) CreateExternalNameServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
CreateExternalNameServiceOrFail creates a new ExternalName type Service based on the jig's defaults. Callers can provide a function to tweak the Service object before it is created.
func (*ServiceTestJig) CreateLoadBalancerService ¶ added in v1.7.0
func (j *ServiceTestJig) CreateLoadBalancerService(namespace, serviceName string, timeout time.Duration, tweak func(svc *v1.Service)) *v1.Service
CreateLoadBalancerService creates a loadbalancer service and waits for it to acquire an ingress IP.
func (*ServiceTestJig) CreateOnlyLocalLoadBalancerService ¶ added in v1.6.0
func (j *ServiceTestJig) CreateOnlyLocalLoadBalancerService(namespace, serviceName string, timeout time.Duration, createPod bool,
tweak func(svc *v1.Service)) *v1.Service
CreateOnlyLocalLoadBalancerService creates a loadbalancer service with ExternalTrafficPolicy set to Local and waits for it to acquire an ingress IP. If createPod is true, it also creates an RC with 1 replica of the standard netexec container used everywhere in this test.
func (*ServiceTestJig) CreateOnlyLocalNodePortService ¶ added in v1.6.0
func (j *ServiceTestJig) CreateOnlyLocalNodePortService(namespace, serviceName string, createPod bool) *v1.Service
CreateOnlyLocalNodePortService creates a NodePort service with ExternalTrafficPolicy set to Local and sanity checks its nodePort. If createPod is true, it also creates an RC with 1 replica of the standard netexec container used everywhere in this test.
func (*ServiceTestJig) CreatePDBOrFail ¶ added in v1.7.0
func (j *ServiceTestJig) CreatePDBOrFail(namespace string, rc *v1.ReplicationController) *policyv1beta1.PodDisruptionBudget
func (*ServiceTestJig) CreateTCPServiceOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) CreateTCPServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
CreateTCPServiceOrFail creates a new TCP Service based on the jig's defaults. Callers can provide a function to tweak the Service object before it is created.
func (*ServiceTestJig) CreateTCPServiceWithPort ¶ added in v1.6.0
func (j *ServiceTestJig) CreateTCPServiceWithPort(namespace string, tweak func(svc *v1.Service), port int32) *v1.Service
CreateTCPServiceWithPort creates a new TCP Service with given port based on the jig's defaults. Callers can provide a function to tweak the Service object before it is created.
func (*ServiceTestJig) CreateUDPServiceOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) CreateUDPServiceOrFail(namespace string, tweak func(svc *v1.Service)) *v1.Service
CreateUDPServiceOrFail creates a new UDP Service based on the jig's defaults. Callers can provide a function to tweak the Service object before it is created.
func (*ServiceTestJig) GetEndpointNodes ¶ added in v1.6.0
func (j *ServiceTestJig) GetEndpointNodes(svc *v1.Service) map[string][]string
GetEndpointNodes returns a map of nodenames:external-ip on which the endpoints of the given Service are running.
func (*ServiceTestJig) GetHTTPContent ¶ added in v1.6.0
func (j *ServiceTestJig) GetHTTPContent(host string, port int, timeout time.Duration, url string) bytes.Buffer
func (*ServiceTestJig) GetNodes ¶ added in v1.6.0
func (j *ServiceTestJig) GetNodes(maxNodesForTest int) (nodes *v1.NodeList)
getNodes returns the first maxNodesForTest nodes. Useful in large clusters where we don't eg: want to create an endpoint per node.
func (*ServiceTestJig) GetNodesNames ¶ added in v1.6.0
func (j *ServiceTestJig) GetNodesNames(maxNodesForTest int) []string
func (*ServiceTestJig) LaunchEchoserverPodOnNode ¶ added in v1.6.0
func (j *ServiceTestJig) LaunchEchoserverPodOnNode(f *Framework, nodeName, podName string)
LaunchEchoserverPodOnNode launches a pod serving http on port 8080 to act as the target for source IP preservation test. The client's source ip would be echoed back by the web server.
func (*ServiceTestJig) LaunchNetexecPodOnNode ¶ added in v1.6.0
func (j *ServiceTestJig) LaunchNetexecPodOnNode(f *Framework, nodeName, podName string, httpPort, udpPort int32, hostNetwork bool)
func (*ServiceTestJig) RunOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) RunOrFail(namespace string, tweak func(rc *v1.ReplicationController)) *v1.ReplicationController
RunOrFail creates a ReplicationController and Pod(s) and waits for the Pod(s) to be running. Callers can provide a function to tweak the RC object before it is created.
func (*ServiceTestJig) SanityCheckService ¶ added in v1.6.0
func (j *ServiceTestJig) SanityCheckService(svc *v1.Service, svcType v1.ServiceType)
func (*ServiceTestJig) TestHTTPHealthCheckNodePort ¶ added in v1.6.0
func (j *ServiceTestJig) TestHTTPHealthCheckNodePort(host string, port int, request string, timeout time.Duration, expectSucceed bool, threshold int) error
func (*ServiceTestJig) TestNotReachableHTTP ¶ added in v1.6.0
func (j *ServiceTestJig) TestNotReachableHTTP(host string, port int, timeout time.Duration)
func (*ServiceTestJig) TestNotReachableUDP ¶ added in v1.6.0
func (j *ServiceTestJig) TestNotReachableUDP(host string, port int, timeout time.Duration)
func (*ServiceTestJig) TestReachableHTTP ¶ added in v1.6.0
func (j *ServiceTestJig) TestReachableHTTP(host string, port int, timeout time.Duration)
func (*ServiceTestJig) TestReachableHTTPWithRetriableErrorCodes ¶ added in v1.8.0
func (j *ServiceTestJig) TestReachableHTTPWithRetriableErrorCodes(host string, port int, retriableErrCodes []int, timeout time.Duration)
func (*ServiceTestJig) TestReachableUDP ¶ added in v1.6.0
func (j *ServiceTestJig) TestReachableUDP(host string, port int, timeout time.Duration)
func (*ServiceTestJig) UpdateService ¶ added in v1.6.0
func (j *ServiceTestJig) UpdateService(namespace, name 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 tries up to 3 times in the face of timeouts and conflicts.
func (*ServiceTestJig) UpdateServiceOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) UpdateServiceOrFail(namespace, name string, update func(*v1.Service)) *v1.Service
UpdateServiceOrFail fetches a service, calls the update function on it, and then attempts to send the updated service. It tries up to 3 times in the face of timeouts and conflicts.
func (*ServiceTestJig) WaitForEndpointOnNode ¶ added in v1.6.0
func (j *ServiceTestJig) WaitForEndpointOnNode(namespace, serviceName, nodeName string)
func (*ServiceTestJig) WaitForLoadBalancerDestroyOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) WaitForLoadBalancerDestroyOrFail(namespace, name string, ip string, port int, timeout time.Duration) *v1.Service
func (*ServiceTestJig) WaitForLoadBalancerOrFail ¶ added in v1.6.0
func (j *ServiceTestJig) WaitForLoadBalancerOrFail(namespace, name string, timeout time.Duration) *v1.Service
func (*ServiceTestJig) WaitForNewIngressIPOrFail ¶ added in v1.8.0
func (j *ServiceTestJig) WaitForNewIngressIPOrFail(namespace, name, existingIP string, timeout time.Duration) *v1.Service
type SingleContainerSummary ¶
type SingleContainerSummary struct {
Name string
Cpu float64
Mem uint64
}
type SingleLogSummary ¶
type SingleLogSummary struct {
AverageGenerationRate int
NumberOfProbes int
}
type StatefulSetTester ¶ added in v1.6.0
type StatefulSetTester struct {
// contains filtered or unexported fields
}
StatefulSetTester is a struct that contains utility methods for testing StatefulSet related functionality. It uses a clientset.Interface to communicate with the API server.
func NewStatefulSetTester ¶ added in v1.6.0
func NewStatefulSetTester(c clientset.Interface) *StatefulSetTester
NewStatefulSetTester creates a StatefulSetTester that uses c to interact with the API server.
func (*StatefulSetTester) BreakHttpProbe ¶ added in v1.7.3
func (s *StatefulSetTester) BreakHttpProbe(ss *apps.StatefulSet) error
BreakHttpProbe breaks the readiness probe for Nginx StatefulSet containers in ss.
func (*StatefulSetTester) BreakPodHttpProbe ¶ added in v1.7.3
func (s *StatefulSetTester) BreakPodHttpProbe(ss *apps.StatefulSet, pod *v1.Pod) error
BreakPodHttpProbe breaks the readiness probe for Nginx StatefulSet containers in one pod.
func (*StatefulSetTester) CheckHostname ¶ added in v1.6.0
func (s *StatefulSetTester) CheckHostname(ss *apps.StatefulSet) error
CheckHostname verifies that all Pods in ss have the correct Hostname. If the returned error is not nil than verification failed.
func (*StatefulSetTester) CheckMount ¶ added in v1.6.0
func (s *StatefulSetTester) CheckMount(ss *apps.StatefulSet, mountPath string) error
CheckMount checks that the mount at mountPath is valid for all Pods in ss.
func (*StatefulSetTester) CheckServiceName ¶ added in v1.6.0
func (p *StatefulSetTester) CheckServiceName(ss *apps.StatefulSet, expectedServiceName string) error
CheckServiceName asserts that the ServiceName for ss is equivalent to expectedServiceName.
func (*StatefulSetTester) ConfirmStatefulPodCount ¶ added in v1.6.0
func (s *StatefulSetTester) ConfirmStatefulPodCount(count int, ss *apps.StatefulSet, timeout time.Duration, hard bool)
ConfirmStatefulPodCount asserts that the current number of Pods in ss is count waiting up to timeout for ss to to scale to count.
func (*StatefulSetTester) CreateStatefulSet ¶ added in v1.6.0
func (s *StatefulSetTester) CreateStatefulSet(manifestPath, ns string) *apps.StatefulSet
CreateStatefulSet creates a StatefulSet from the manifest at manifestPath in the Namespace ns using kubectl create.
func (*StatefulSetTester) DeleteStatefulPodAtIndex ¶ added in v1.6.0
func (s *StatefulSetTester) DeleteStatefulPodAtIndex(index int, ss *apps.StatefulSet)
DeleteStatefulPodAtIndex deletes the Pod with ordinal index in ss.
func (*StatefulSetTester) ExecInStatefulPods ¶ added in v1.6.0
func (s *StatefulSetTester) ExecInStatefulPods(ss *apps.StatefulSet, cmd string) error
ExecInStatefulPods executes cmd in all Pods in ss. If a error occurs it is returned and cmd is not execute in any subsequent Pods.
func (*StatefulSetTester) GetPodList ¶ added in v1.6.0
func (s *StatefulSetTester) GetPodList(ss *apps.StatefulSet) *v1.PodList
GetPodList gets the current Pods in ss.
func (*StatefulSetTester) GetStatefulSet ¶ added in v1.7.0
func (s *StatefulSetTester) GetStatefulSet(namespace, name string) *apps.StatefulSet
GetStatefulSet gets the StatefulSet named name in namespace.
func (*StatefulSetTester) PauseNewPods ¶ added in v1.7.3
func (s *StatefulSetTester) PauseNewPods(ss *apps.StatefulSet)
PauseNewPods adds an always-failing ReadinessProbe to the StatefulSet PodTemplate. This causes all newly-created Pods to stay Unready until they are manually resumed with ResumeNextPod(). Note that this cannot be used together with SetHttpProbe().
func (*StatefulSetTester) Restart ¶ added in v1.6.0
func (s *StatefulSetTester) Restart(ss *apps.StatefulSet)
Restart scales ss to 0 and then back to its previous number of replicas.
func (*StatefulSetTester) RestoreHttpProbe ¶ added in v1.7.3
func (s *StatefulSetTester) RestoreHttpProbe(ss *apps.StatefulSet) error
RestoreHttpProbe restores the readiness probe for Nginx StatefulSet containers in ss.
func (*StatefulSetTester) RestorePodHttpProbe ¶ added in v1.7.3
func (s *StatefulSetTester) RestorePodHttpProbe(ss *apps.StatefulSet, pod *v1.Pod) error
RestorePodHttpProbe restores the readiness probe for Nginx StatefulSet containers in pod.
func (*StatefulSetTester) ResumeNextPod ¶ added in v1.7.3
func (s *StatefulSetTester) ResumeNextPod(ss *apps.StatefulSet)
ResumeNextPod allows the next Pod in the StatefulSet to continue by removing the ReadinessProbe added by PauseNewPods(), if it's still there. It fails the test if it finds any pods that are not in phase Running, or if it finds more than one paused Pod existing at the same time. This is a no-op if there are no paused pods.
func (*StatefulSetTester) Saturate ¶ added in v1.6.0
func (s *StatefulSetTester) Saturate(ss *apps.StatefulSet)
Saturate waits for all Pods in ss to become Running and Ready.
func (*StatefulSetTester) Scale ¶ added in v1.6.0
func (s *StatefulSetTester) Scale(ss *apps.StatefulSet, count int32) (*apps.StatefulSet, error)
Scale scales ss to count replicas.
func (*StatefulSetTester) SetHttpProbe ¶ added in v1.7.3
func (s *StatefulSetTester) SetHttpProbe(ss *apps.StatefulSet)
SetHttpProbe sets the pod template's ReadinessProbe for Nginx StatefulSet containers. This probe can then be controlled with BreakHttpProbe() and RestoreHttpProbe(). Note that this cannot be used together with PauseNewPods().
func (*StatefulSetTester) SortStatefulPods ¶ added in v1.7.0
func (s *StatefulSetTester) SortStatefulPods(pods *v1.PodList)
SortStatefulPods sorts pods by their ordinals
func (*StatefulSetTester) UpdateReplicas ¶ added in v1.6.0
func (s *StatefulSetTester) UpdateReplicas(ss *apps.StatefulSet, count int32)
UpdateReplicas updates the replicas of ss to count.
func (*StatefulSetTester) VerifyPodAtIndex ¶ added in v1.6.0
func (s *StatefulSetTester) VerifyPodAtIndex(index int, ss *apps.StatefulSet, verify VerifyStatefulPodFunc)
VerifyPodAtIndex applies a visitor patter to the Pod at index in ss. verify is is applied to the Pod to "visit" it.
func (*StatefulSetTester) WaitForPartitionedRollingUpdate ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForPartitionedRollingUpdate(set *apps.StatefulSet) (*apps.StatefulSet, *v1.PodList)
WaitForPartitionedRollingUpdate waits for all Pods in set to exist and have the correct revision. set must have a RollingUpdateStatefulSetStrategyType with a non-nil RollingUpdate and Partition. All Pods with ordinals less than or equal to the Partition are expected to be at set's current revision. All other Pods are expected to be at its update revision.
func (*StatefulSetTester) WaitForPodNotReady ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForPodNotReady(set *apps.StatefulSet, podName string) (*apps.StatefulSet, *v1.PodList)
WaitForPodNotReady waist for the Pod named podName in set to exist and to not have a Ready condition.
func (*StatefulSetTester) WaitForPodReady ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForPodReady(set *apps.StatefulSet, podName string) (*apps.StatefulSet, *v1.PodList)
WaitForPodReady waits for the Pod named podName in set to exist and have a Ready condition.
func (*StatefulSetTester) WaitForRollingUpdate ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForRollingUpdate(set *apps.StatefulSet) (*apps.StatefulSet, *v1.PodList)
WaitForRollingUpdate waits for all Pods in set to exist and have the correct revision and for the RollingUpdate to complete. set must have a RollingUpdateStatefulSetStrategyType.
func (*StatefulSetTester) WaitForRunning ¶ added in v1.7.3
func (s *StatefulSetTester) WaitForRunning(numPodsRunning, numPodsReady int32, ss *apps.StatefulSet)
WaitForRunning waits for numPodsRunning in ss to be Running and for the first numPodsReady ordinals to be Ready.
func (*StatefulSetTester) WaitForRunningAndNotReady ¶ added in v1.6.0
func (s *StatefulSetTester) WaitForRunningAndNotReady(numStatefulPods int32, ss *apps.StatefulSet)
WaitForRunningAndReady waits for numStatefulPods in ss to be Running and not Ready.
func (*StatefulSetTester) WaitForRunningAndReady ¶ added in v1.6.0
func (s *StatefulSetTester) WaitForRunningAndReady(numStatefulPods int32, ss *apps.StatefulSet)
WaitForRunningAndReady waits for numStatefulPods in ss to be Running and Ready.
func (*StatefulSetTester) WaitForState ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForState(ss *apps.StatefulSet, until func(*apps.StatefulSet, *v1.PodList) (bool, error))
WaitForState periodically polls for the ss and its pods until the until function returns either true or an error
func (*StatefulSetTester) WaitForStatus ¶ added in v1.6.0
func (s *StatefulSetTester) WaitForStatus(set *apps.StatefulSet) *apps.StatefulSet
WaitForStatus waits for the StatefulSetStatus's ObservedGeneration to be greater than or equal to set's Generation. The returned StatefulSet contains such a StatefulSetStatus
func (*StatefulSetTester) WaitForStatusReadyReplicas ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForStatusReadyReplicas(ss *apps.StatefulSet, expectedReplicas int32)
WaitForStatusReadyReplicas waits for the ss.Status.ReadyReplicas to be equal to expectedReplicas
func (*StatefulSetTester) WaitForStatusReplicas ¶ added in v1.7.0
func (s *StatefulSetTester) WaitForStatusReplicas(ss *apps.StatefulSet, expectedReplicas int32)
WaitForStatusReplicas waits for the ss.Status.Replicas to be equal to expectedReplicas
type TestContextType ¶
type TestContextType struct {
KubeConfig string
KubemarkExternalKubeConfig string
KubeContext string
KubeAPIContentType string
KubeVolumeDir string
CertDir string
Host string
// TODO: Deprecating this over time... instead just use gobindata_util.go , see #23987.
RepoRoot string
DockershimCheckpointDir string
Provider string
CloudConfig CloudConfig
KubectlPath string
OutputDir string
ReportDir string
ReportPrefix string
Prefix string
MinStartupPods int
// Timeout for waiting for system pods to be running
SystemPodsStartupTimeout time.Duration
UpgradeTarget string
EtcdUpgradeStorage string
EtcdUpgradeVersion string
UpgradeImage string
GCEUpgradeScript string
ContainerRuntime string
ContainerRuntimeEndpoint string
// SystemdServices are comma separated list of systemd services the test framework
// will dump logs for.
SystemdServices string
ImageServiceEndpoint string
MasterOSDistro string
NodeOSDistro string
VerifyServiceAccount bool
DeleteNamespace bool
DeleteNamespaceOnFailure bool
AllowedNotReadyNodes int
CleanStart bool
// If set to 'true' or 'all' framework will start a goroutine monitoring resource usage of system add-ons.
// It will read the data every 30 seconds from all Nodes and print summary during afterEach. If set to 'master'
// only master Node will be monitored.
GatherKubeSystemResourceUsageData string
GatherLogsSizes bool
GatherMetricsAfterTest string
GatherSuiteMetricsAfterTest bool
// If set to 'true' framework will gather ClusterAutoscaler metrics when gathering them for other components.
IncludeClusterAutoscalerMetrics bool
// Currently supported values are 'hr' for human-readable and 'json'. It's a comma separated list.
OutputPrintType string
// NodeSchedulableTimeout is the timeout for waiting for all nodes to be schedulable.
NodeSchedulableTimeout time.Duration
// CreateTestingNS is responsible for creating namespace used for executing e2e tests.
// It accepts namespace base name, which will be prepended with e2e prefix, kube client
// and labels to be applied to a namespace.
CreateTestingNS CreateTestingNSFn
// If set to true test will dump data about the namespace in which test was running.
DumpLogsOnFailure bool
// Disables dumping cluster log from master and nodes after all tests.
DisableLogDump bool
// Path to the GCS artifacts directory to dump logs from nodes. Logexporter gets enabled if this is non-empty.
LogexporterGCSPath string
// If the garbage collector is enabled in the kube-apiserver and kube-controller-manager.
GarbageCollectorEnabled bool
// FeatureGates is a set of key=value pairs that describe feature gates for alpha/experimental features.
FeatureGates string
// Node e2e specific test context
NodeTestContextType
// Monitoring solution that is used in current cluster.
ClusterMonitoringMode string
// Indicates what path the kubernetes-anywhere is installed on
KubernetesAnywherePath string
Viper string
Cadvisor struct {
MaxRetries int
SleepDurationMS int
}
LoggingSoak struct {
Scale int
MilliSecondsBetweenWaves int
}
}
var TestContext TestContextType
type TestDataSummary ¶
type TestDataSummary interface {
SummaryKind() string
PrintHumanReadable() string
PrintJSON() string
}
type TimestampedSize ¶
type TimestampedSize struct {
// contains filtered or unexported fields
}
TimestampedSize contains a size together with a time of measurement.
type VerifyStatefulPodFunc ¶ added in v1.6.0
type VerifyStatefulPodFunc func(*v1.Pod)
VerifyStatefulPodFunc is a func that examines a StatefulSetPod.
type VolumeTest ¶ added in v1.7.0
type VolumeTest struct {
Volume v1.VolumeSource
File string
ExpectedContent string
}
VolumeTest contains a volume to mount into a client pod and its expected content.
type VolumeTestConfig ¶ added in v1.7.0
type VolumeTestConfig struct {
Namespace string
// Prefix of all pods. Typically the test name.
Prefix string
// Name of container image for the server pod.
ServerImage string
// Ports to export from the server pod. TCP only.
ServerPorts []int
// Commands to run in the container image.
ServerCmds []string
// Arguments to pass to the container image.
ServerArgs []string
// Volumes needed to be mounted to the server container from the host
// map <host (source) path> -> <container (dst.) path>
ServerVolumes map[string]string
// Wait for the pod to terminate successfully
// False indicates that the pod is long running
WaitForCompletion bool
// ServerNodeName is the spec.nodeName to run server pod on. Default is any node.
ServerNodeName string
// ClientNodeName is the spec.nodeName to run client pod on. Default is any node.
ClientNodeName string
// NodeSelector to use in pod spec (server, client and injector pods).
NodeSelector map[string]string
}
Configuration of one tests. The test consist of: - server pod - runs serverImage, exports ports[] - client pod - does not need any special configuration
func NewGlusterfsServer ¶ added in v1.7.14
func NewGlusterfsServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
GlusterFS-specific wrapper for CreateStorageServer. Also creates the gluster endpoints object.
func NewISCSIServer ¶ added in v1.8.0
func NewISCSIServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
iSCSI-specific wrapper for CreateStorageServer.
func NewNFSServer ¶ added in v1.7.14
func NewNFSServer(cs clientset.Interface, namespace string, args []string) (config VolumeTestConfig, pod *v1.Pod, ip string)
NFS-specific wrapper for CreateStorageServer.
func NewRBDServer ¶ added in v1.8.0
func NewRBDServer(cs clientset.Interface, namespace string) (config VolumeTestConfig, pod *v1.Pod, ip string)
CephRBD-specific wrapper for CreateStorageServer.
Source Files
¶
- authorizer_util.go
- cleanup.go
- deployment_util.go
- exec_util.go
- firewall_util.go
- framework.go
- get-kubemark-resource-usage.go
- google_compute.go
- gpu_util.go
- ingress_utils.go
- jobs_util.go
- kubelet_stats.go
- log_size_monitoring.go
- metrics_util.go
- networking_utils.go
- nodes_util.go
- perf_util.go
- pods.go
- psp_util.go
- pv_util.go
- rc_util.go
- resource_usage_gatherer.go
- rs_util.go
- service_util.go
- size.go
- statefulset_utils.go
- test_context.go
- upgrade_util.go
- util.go
- volume_util.go
Directories
¶
Path | Synopsis |
---|---|
Package ginkgowrapper wraps Ginkgo Fail and Skip functions to panic with structured data instead of a constant string.
|
Package ginkgowrapper wraps Ginkgo Fail and Skip functions to panic with structured data instead of a constant string. |