const ( // StatefulSetPoll is a poll interval for StatefulSet tests StatefulSetPoll = 10 * time.Second // StatefulSetTimeout is a timeout interval for StatefulSet operations StatefulSetTimeout = 10 * time.Minute // StatefulPodTimeout is a timeout for stateful pods to change state StatefulPodTimeout = 5 * time.Minute )
CheckHostname verifies that all Pods in ss have the correct Hostname. If the returned error is not nil than verification failed.
CheckMount checks that the mount at mountPath is valid for all Pods in ss.
CheckServiceName asserts that the ServiceName for ss is equivalent to expectedServiceName.
CreateStatefulSet creates a StatefulSet from the manifest at manifestPath in the Namespace ns using kubectl create.
DeleteAllStatefulSets deletes all StatefulSet API Objects in Namespace ns.
ExecInStatefulPods executes cmd in all Pods in ss. If a error occurs it is returned and cmd is not execute in any subsequent Pods.
GetPodList gets the current Pods in ss.
func NewStatefulSet(name, ns, governingSvcName string, replicas int32, statefulPodMounts v1.VolumeMount, podMounts v1.VolumeMount, labels map[string]string) *appsv1.StatefulSet
NewStatefulSet creates a new Webserver 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.
NewStatefulSetPVC returns a PersistentVolumeClaim named name, for testing StatefulSets.
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().
Restart scales ss to 0 and then back to its previous number of replicas.
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.
Saturate waits for all Pods in ss to become Running and Ready.
func Scale(c clientset.Interface, ss *appsv1.StatefulSet, count int32) (*appsv1.StatefulSet, error)
Scale scales ss to count replicas.
SortStatefulPods sorts pods by their ordinals
UpdateReplicas updates the replicas of ss to count.
func WaitForPodReady(c clientset.Interface, set *appsv1.StatefulSet, podName string) (*appsv1.StatefulSet, *v1.PodList)
WaitForPodReady waits for the Pod named podName in set to exist and have a Ready condition.
func WaitForRunning(c clientset.Interface, numPodsRunning, numPodsReady int32, ss *appsv1.StatefulSet)
WaitForRunning waits for numPodsRunning in ss to be Running and for the first numPodsReady ordinals to be Ready.
WaitForRunningAndReady waits for numStatefulPods in ss to be Running and Ready.
func WaitForState(c clientset.Interface, ss *appsv1.StatefulSet, until func(*appsv1.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 WaitForStatusReadyReplicas(c clientset.Interface, ss *appsv1.StatefulSet, expectedReplicas int32)
WaitForStatusReadyReplicas waits for the ss.Status.ReadyReplicas to be equal to expectedReplicas
WaitForStatusReplicas waits for the ss.Status.Replicas to be equal to expectedReplicas