63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
| package e2e
 | |
| 
 | |
| import (
 | |
| 	"github.com/jenkinsci/kubernetes-operator/api/v1alpha2"
 | |
| 
 | |
| 	. "github.com/onsi/ginkgo"
 | |
| 	corev1 "k8s.io/api/core/v1"
 | |
| 	// +kubebuilder:scaffold:imports
 | |
| )
 | |
| 
 | |
| var _ = Describe("Jenkins controller backup and restore", func() {
 | |
| 
 | |
| 	const (
 | |
| 		jenkinsCRName = e2e
 | |
| 		jobID         = "e2e-jenkins-operator"
 | |
| 	)
 | |
| 
 | |
| 	var (
 | |
| 		namespace *corev1.Namespace
 | |
| 		jenkins   *v1alpha2.Jenkins
 | |
| 	)
 | |
| 
 | |
| 	BeforeEach(func() {
 | |
| 		namespace = CreateNamespace()
 | |
| 
 | |
| 		createPVC(namespace.Name)
 | |
| 		jenkins = createJenkinsWithBackupAndRestoreConfigured(jenkinsCRName, namespace.Name)
 | |
| 	})
 | |
| 
 | |
| 	AfterEach(func() {
 | |
| 		ShowLogsIfTestHasFailed(CurrentGinkgoTestDescription().Failed, namespace.Name)
 | |
| 		DestroyNamespace(namespace)
 | |
| 	})
 | |
| 
 | |
| 	Context("when deploying CR with backup enabled to cluster", func() {
 | |
| 		It("performs backups before pod deletion and restores them even Jenkins status is restarted", func() {
 | |
| 			WaitForJenkinsUserConfigurationToComplete(jenkins)
 | |
| 			jenkinsClient, cleanUpFunc := verifyJenkinsAPIConnection(jenkins, namespace.Name)
 | |
| 			defer cleanUpFunc()
 | |
| 			waitForJobCreation(jenkinsClient, jobID)
 | |
| 			verifyJobCanBeRun(jenkinsClient, jobID)
 | |
| 
 | |
| 			jenkins = getJenkins(jenkins.Namespace, jenkins.Name)
 | |
| 			restartJenkinsMasterPod(jenkins)
 | |
| 			waitForRecreateJenkinsMasterPod(jenkins)
 | |
| 			WaitForJenkinsUserConfigurationToComplete(jenkins)
 | |
| 			jenkinsClient2, cleanUpFunc2 := verifyJenkinsAPIConnection(jenkins, namespace.Name)
 | |
| 			defer cleanUpFunc2()
 | |
| 			waitForJobCreation(jenkinsClient2, jobID)
 | |
| 			verifyJobBuildsAfterRestoreBackup(jenkinsClient2, jobID)
 | |
| 
 | |
| 			resetJenkinsStatus(jenkins)
 | |
| 			jenkins = getJenkins(jenkins.Namespace, jenkins.Name)
 | |
| 			checkBaseConfigurationCompleteTimeIsNotSet(jenkins)
 | |
| 			WaitForJenkinsUserConfigurationToComplete(jenkins)
 | |
| 			jenkinsClient3, cleanUpFunc3 := verifyJenkinsAPIConnection(jenkins, namespace.Name)
 | |
| 			defer cleanUpFunc3()
 | |
| 			waitForJobCreation(jenkinsClient3, jobID)
 | |
| 			verifyJobBuildsAfterRestoreBackup(jenkinsClient3, jobID)
 | |
| 		})
 | |
| 	})
 | |
| })
 |