Improve JenkinsMasterPodRestart test
This commit is contained in:
		
							parent
							
								
									25d63a881f
								
							
						
					
					
						commit
						1de7a05278
					
				|  | @ -2,12 +2,12 @@ package e2e | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1" |  | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
|  | 	virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1" | ||||||
|  | 
 | ||||||
| 	framework "github.com/operator-framework/operator-sdk/pkg/test" | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
| 	"time" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestJenkinsMasterPodRestart(t *testing.T) { | func TestJenkinsMasterPodRestart(t *testing.T) { | ||||||
|  | @ -19,7 +19,7 @@ func TestJenkinsMasterPodRestart(t *testing.T) { | ||||||
| 	jenkins := createJenkinsCR(t, namespace) | 	jenkins := createJenkinsCR(t, namespace) | ||||||
| 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | ||||||
| 	restartJenkinsMasterPod(t, jenkins) | 	restartJenkinsMasterPod(t, jenkins) | ||||||
| 	time.Sleep(33 * time.Second) // wait for recreate pod
 | 	waitForRecreateJenkinsMasterPod(t, jenkins) | ||||||
| 	checkBaseConfigurationCompleteTimeIsNotSet(t, jenkins) | 	checkBaseConfigurationCompleteTimeIsNotSet(t, jenkins) | ||||||
| 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | 	waitForJenkinsBaseConfigurationToComplete(t, jenkins) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -7,8 +7,11 @@ import ( | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1" | 	virtuslabv1alpha1 "github.com/VirtusLab/jenkins-operator/pkg/apis/virtuslab/v1alpha1" | ||||||
|  | 	"github.com/VirtusLab/jenkins-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 
 | 
 | ||||||
| 	framework "github.com/operator-framework/operator-sdk/pkg/test" | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
|  | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
| 	"k8s.io/apimachinery/pkg/util/wait" | 	"k8s.io/apimachinery/pkg/util/wait" | ||||||
| ) | ) | ||||||
|  | @ -23,7 +26,7 @@ type checkConditionFunc func(*virtuslabv1alpha1.Jenkins) bool | ||||||
| 
 | 
 | ||||||
| func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | ||||||
| 	t.Log("Waiting for Jenkins base configuration to complete") | 	t.Log("Waiting for Jenkins base configuration to complete") | ||||||
| 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 30, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 50, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | ||||||
| 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | 		t.Logf("Current Jenkins status '%+v'", jenkins.Status) | ||||||
| 		return jenkins.Status.BaseConfigurationCompletedTime != nil | 		return jenkins.Status.BaseConfigurationCompletedTime != nil | ||||||
| 	}) | 	}) | ||||||
|  | @ -33,6 +36,24 @@ func waitForJenkinsBaseConfigurationToComplete(t *testing.T, jenkins *virtuslabv | ||||||
| 	t.Log("Jenkins pod is running") | 	t.Log("Jenkins pod is running") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func waitForRecreateJenkinsMasterPod(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | ||||||
|  | 	err := wait.Poll(retryInterval, 20*retryInterval, func() (bool, error) { | ||||||
|  | 		lo := metav1.ListOptions{ | ||||||
|  | 			LabelSelector: labels.SelectorFromSet(resources.BuildResourceLabels(jenkins)).String(), | ||||||
|  | 		} | ||||||
|  | 		podList, err := framework.Global.KubeClient.CoreV1().Pods(jenkins.ObjectMeta.Namespace).List(lo) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return false, err | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return podList.Items[0].DeletionTimestamp == nil, nil | ||||||
|  | 	}) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatal(err) | ||||||
|  | 	} | ||||||
|  | 	t.Log("Jenkins pod has bee recreated") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func waitForJenkinsUserConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | func waitForJenkinsUserConfigurationToComplete(t *testing.T, jenkins *virtuslabv1alpha1.Jenkins) { | ||||||
| 	t.Log("Waiting for Jenkins user configuration to complete") | 	t.Log("Waiting for Jenkins user configuration to complete") | ||||||
| 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 30, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | 	_, err := WaitUntilJenkinsConditionTrue(retryInterval, 30, jenkins, func(jenkins *virtuslabv1alpha1.Jenkins) bool { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue