kubernetes-operator/test/e2e/jenkins_pod_restart_test.go

113 lines
3.0 KiB
Go

package e2e
import (
"context"
"github.com/jenkinsci/kubernetes-operator/api/v1alpha2"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
corev1 "k8s.io/api/core/v1"
// +kubebuilder:scaffold:imports
)
var _ = Describe("Jenkins controller", func() {
const (
jenkinsCRName = e2e
priorityClassName = ""
)
var (
namespace *corev1.Namespace
jenkins *v1alpha2.Jenkins
groovyScripts = v1alpha2.GroovyScripts{
Customization: v1alpha2.Customization{
Configurations: []v1alpha2.ConfigMapRef{},
},
}
casc = v1alpha2.ConfigurationAsCode{
Customization: v1alpha2.Customization{
Configurations: []v1alpha2.ConfigMapRef{},
},
}
)
BeforeEach(func() {
namespace = CreateNamespace()
configureAuthorizationToUnSecure(namespace.Name, userConfigurationConfigMapName)
jenkins = RenderJenkinsCR(jenkinsCRName, namespace.Name, nil, groovyScripts, casc, priorityClassName)
Expect(K8sClient.Create(context.TODO(), jenkins)).Should(Succeed())
})
AfterEach(func() {
ShowLogsIfTestHasFailed(CurrentGinkgoTestDescription().Failed, namespace.Name)
DestroyNamespace(namespace)
})
Context("when restarting Jenkins master pod", func() {
It("new Jenkins pod should be created after a restart", func() {
WaitForJenkinsBaseConfigurationToComplete(jenkins)
restartJenkinsMasterPod(jenkins)
waitForRecreateJenkinsMasterPod(jenkins)
checkBaseConfigurationCompleteTimeIsNotSet(jenkins)
WaitForJenkinsBaseConfigurationToComplete(jenkins)
})
})
})
var _ = Describe("Jenkins controller", func() {
const (
jenkinsCRName = e2e
priorityClassName = ""
)
var (
namespace *corev1.Namespace
jenkins *v1alpha2.Jenkins
groovyScripts = v1alpha2.GroovyScripts{
Customization: v1alpha2.Customization{
Configurations: []v1alpha2.ConfigMapRef{
{
Name: userConfigurationConfigMapName,
},
},
},
}
casc = v1alpha2.ConfigurationAsCode{
Customization: v1alpha2.Customization{
Configurations: []v1alpha2.ConfigMapRef{},
},
}
)
BeforeEach(func() {
namespace = CreateNamespace()
configureAuthorizationToUnSecure(namespace.Name, userConfigurationConfigMapName)
jenkins = createJenkinsCRSafeRestart(jenkinsCRName, namespace.Name, nil, groovyScripts, casc, priorityClassName)
})
AfterEach(func() {
ShowLogsIfTestHasFailed(CurrentGinkgoTestDescription().Failed, namespace.Name)
DestroyNamespace(namespace)
})
Context("when running Jenkins safe restart", func() {
It("authorization strategy is not overwritten after a restart", func() {
// TODO: @brokenpip3 temporary disable this flaky test
Skip("Temporary skipping this test")
WaitForJenkinsUserConfigurationToComplete(jenkins)
jenkinsClient, cleanUpFunc := verifyJenkinsAPIConnection(jenkins, namespace.Name)
defer cleanUpFunc()
checkIfAuthorizationStrategyUnsecuredIsSet(jenkinsClient)
err := jenkinsClient.SafeRestart(context.TODO())
Expect(err).NotTo(HaveOccurred())
waitForJenkinsSafeRestart(jenkinsClient)
checkIfAuthorizationStrategyUnsecuredIsSet(jenkinsClient)
})
})
})