mirror of https://github.com/k3s-io/k3s
Modifies Rescheduler e2e test for the new dashboard addon
parent
b26faae7fc
commit
68f7a739c0
|
@ -2642,6 +2642,36 @@ func WaitForRCPodsRunning(c clientset.Interface, ns, rcName string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func ScaleDeployment(clientset clientset.Interface, ns, name string, size uint, wait bool) error {
|
||||
By(fmt.Sprintf("Scaling Deployment %s in namespace %s to %d", name, ns, size))
|
||||
scaler, err := kubectl.ScalerFor(extensions.Kind("Deployment"), clientset)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
waitForScale := kubectl.NewRetryParams(5*time.Second, 1*time.Minute)
|
||||
waitForReplicas := kubectl.NewRetryParams(5*time.Second, 5*time.Minute)
|
||||
if err = scaler.Scale(ns, name, size, nil, waitForScale, waitForReplicas); err != nil {
|
||||
return fmt.Errorf("error while scaling Deployment %s to %d replicas: %v", name, size, err)
|
||||
}
|
||||
if !wait {
|
||||
return nil
|
||||
}
|
||||
return WaitForDeploymentPodsRunning(clientset, ns, name)
|
||||
}
|
||||
|
||||
func WaitForDeploymentPodsRunning(c clientset.Interface, ns, name string) error {
|
||||
deployment, err := c.Extensions().Deployments(ns).Get(name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
selector := labels.SelectorFromSet(labels.Set(deployment.Spec.Selector.MatchLabels))
|
||||
err = testutils.WaitForPodsWithLabelRunning(c, ns, selector)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error while waiting for Deployment %s pods to be running: %v", name, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Returns true if all the specified pods are scheduled, else returns false.
|
||||
func podsWithLabelScheduled(c clientset.Interface, ns string, label labels.Selector) (bool, error) {
|
||||
PodStore := testutils.NewPodStore(c, ns, label, fields.Everything())
|
||||
|
|
|
@ -55,16 +55,17 @@ var _ = framework.KubeDescribe("Rescheduler [Serial]", func() {
|
|||
By("creating a new instance of Dashboard and waiting for Dashboard to be scheduled")
|
||||
label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": "kubernetes-dashboard"}))
|
||||
listOpts := api.ListOptions{LabelSelector: label}
|
||||
rcs, err := f.ClientSet.Core().ReplicationControllers(api.NamespaceSystem).List(listOpts)
|
||||
deployments, err := f.ClientSet.Extensions().Deployments(api.NamespaceSystem).List(listOpts)
|
||||
framework.ExpectNoError(err)
|
||||
Expect(len(rcs.Items)).Should(Equal(1))
|
||||
Expect(len(deployments.Items)).Should(Equal(1))
|
||||
|
||||
rc := rcs.Items[0]
|
||||
replicas := uint(rc.Spec.Replicas)
|
||||
deployment := deployments.Items[0]
|
||||
replicas := uint(deployment.Spec.Replicas)
|
||||
|
||||
err = framework.ScaleRC(f.ClientSet, api.NamespaceSystem, rc.Name, replicas+1, true)
|
||||
defer framework.ExpectNoError(framework.ScaleRC(f.ClientSet, api.NamespaceSystem, rc.Name, replicas, true))
|
||||
err = framework.ScaleDeployment(f.ClientSet, api.NamespaceSystem, deployment.Name, replicas+1, true)
|
||||
defer framework.ExpectNoError(framework.ScaleDeployment(f.ClientSet, api.NamespaceSystem, deployment.Name, replicas, true))
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue