mirror of
https://github.com/jenkinsci/kubernetes-operator.git
synced 2026-10-05 15:41:10 +02:00
#69 Add e2e test
This commit is contained in:
@@ -40,7 +40,7 @@ const (
|
||||
JenkinsCredentialTypeLabelName = "jenkins.io/credentials-type"
|
||||
|
||||
// AgentName is the name of seed job agent
|
||||
AgentName = "jnlp"
|
||||
AgentName = "seed-job-agent"
|
||||
|
||||
creatingGroovyScriptName = "seed-job-groovy-script.groovy"
|
||||
)
|
||||
@@ -79,7 +79,7 @@ import static com.google.common.collect.Lists.newArrayList;
|
||||
|
||||
Jenkins jenkins = Jenkins.instance
|
||||
|
||||
def jobDslSeedName = "{{ .ID }} - {{ .SeedJobSuffix }}";
|
||||
def jobDslSeedName = "{{ .ID }}-{{ .SeedJobSuffix }}";
|
||||
def jobRef = jenkins.getItem(jobDslSeedName)
|
||||
|
||||
def repoList = GitSCM.createRepoList("{{ .RepositoryURL }}", "{{ .CredentialID }}")
|
||||
@@ -161,7 +161,7 @@ func (s *SeedJobs) EnsureSeedJobs(jenkins *v1alpha2.Jenkins) (done bool, err err
|
||||
err := s.k8sClient.Delete(context.TODO(), &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: jenkins.Namespace,
|
||||
Name: AgentName,
|
||||
Name: agentDeploymentName(*jenkins, AgentName),
|
||||
},
|
||||
})
|
||||
|
||||
@@ -345,10 +345,14 @@ func (s SeedJobs) createAgent(jenkinsClient jenkinsclient.Jenkins, k8sClient cli
|
||||
return nil
|
||||
}
|
||||
|
||||
func agentDeployment(jenkinsManifest *v1alpha2.Jenkins, namespace string, agentName string, secret string) *apps.Deployment {
|
||||
func agentDeploymentName(jenkins v1alpha2.Jenkins, agentName string) string {
|
||||
return fmt.Sprintf("%s-%s", agentName, jenkins.Name)
|
||||
}
|
||||
|
||||
func agentDeployment(jenkins *v1alpha2.Jenkins, namespace string, agentName string, secret string) *apps.Deployment {
|
||||
return &apps.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: agentName,
|
||||
Name: agentDeploymentName(*jenkins, agentName),
|
||||
Namespace: namespace,
|
||||
},
|
||||
Spec: apps.DeploymentSpec{
|
||||
@@ -362,9 +366,9 @@ func agentDeployment(jenkinsManifest *v1alpha2.Jenkins, namespace string, agentN
|
||||
{
|
||||
Name: "JENKINS_TUNNEL",
|
||||
Value: fmt.Sprintf("%s.%s:%d",
|
||||
resources.GetJenkinsSlavesServiceName(jenkinsManifest),
|
||||
jenkinsManifest.ObjectMeta.Namespace,
|
||||
jenkinsManifest.Spec.SlaveService.Port),
|
||||
resources.GetJenkinsSlavesServiceName(jenkins),
|
||||
jenkins.ObjectMeta.Namespace,
|
||||
jenkins.Spec.SlaveService.Port),
|
||||
},
|
||||
{
|
||||
Name: "JENKINS_SECRET",
|
||||
@@ -377,9 +381,9 @@ func agentDeployment(jenkinsManifest *v1alpha2.Jenkins, namespace string, agentN
|
||||
{
|
||||
Name: "JENKINS_URL",
|
||||
Value: fmt.Sprintf("http://%s.%s:%d",
|
||||
resources.GetJenkinsHTTPServiceName(jenkinsManifest),
|
||||
jenkinsManifest.ObjectMeta.Namespace,
|
||||
jenkinsManifest.Spec.Service.Port,
|
||||
resources.GetJenkinsHTTPServiceName(jenkins),
|
||||
jenkins.ObjectMeta.Namespace,
|
||||
jenkins.Spec.Service.Port,
|
||||
),
|
||||
},
|
||||
{
|
||||
|
||||
@@ -79,20 +79,19 @@ func TestEnsureSeedJobs(t *testing.T) {
|
||||
err = fakeClient.Create(ctx, jenkins)
|
||||
assert.NoError(t, err)
|
||||
|
||||
agentName := "jnlp"
|
||||
agentSecret := "test-secret"
|
||||
testNode := &gojenkins.Node{
|
||||
Raw: &gojenkins.NodeResponse{
|
||||
DisplayName: agentName,
|
||||
DisplayName: AgentName,
|
||||
},
|
||||
}
|
||||
|
||||
seedJobCreatingScript, err := seedJobCreatingGroovyScript(jenkins.Spec.SeedJobs[0])
|
||||
assert.NoError(t, err)
|
||||
|
||||
jenkinsClient.EXPECT().GetNode(agentName).Return(nil, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(agentName, 1, "The jenkins-operator generated agent", "/home/jenkins", agentName).Return(testNode, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(agentName).Return(agentSecret, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNode(AgentName).Return(nil, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(AgentName, 1, "The jenkins-operator generated agent", "/home/jenkins", AgentName).Return(testNode, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(AgentName).Return(agentSecret, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().ExecuteScript(seedJobCreatingScript).AnyTimes()
|
||||
|
||||
seedJobClient := New(jenkinsClient, fakeClient, logger)
|
||||
@@ -104,7 +103,7 @@ func TestEnsureSeedJobs(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
var agentDeployment appsv1.Deployment
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Namespace: jenkins.Namespace, Name: agentName}, &agentDeployment)
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Namespace: jenkins.Namespace, Name: agentDeploymentName(*jenkins, AgentName)}, &agentDeployment)
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
|
||||
@@ -114,7 +113,6 @@ func TestEnsureSeedJobs(t *testing.T) {
|
||||
ctx := context.TODO()
|
||||
defer ctrl.Finish()
|
||||
|
||||
agentName := "test-agent"
|
||||
agentSecret := "test-secret"
|
||||
jenkins := jenkinsCustomResource()
|
||||
jenkins.Spec.SeedJobs = []v1alpha2.SeedJob{}
|
||||
@@ -124,15 +122,15 @@ func TestEnsureSeedJobs(t *testing.T) {
|
||||
err := v1alpha2.SchemeBuilder.AddToScheme(scheme.Scheme)
|
||||
assert.NoError(t, err)
|
||||
|
||||
jenkinsClient.EXPECT().GetNode(agentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(agentName, 1, "The jenkins-operator generated agent", "/home/jenkins", agentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(agentName).Return(agentSecret, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNode(AgentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(AgentName, 1, "The jenkins-operator generated agent", "/home/jenkins", AgentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(AgentName).Return(agentSecret, nil).AnyTimes()
|
||||
|
||||
seedJobsClient := New(jenkinsClient, fakeClient, nil)
|
||||
|
||||
err = fakeClient.Create(ctx, &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: agentName,
|
||||
Name: agentDeploymentName(*jenkins, AgentName),
|
||||
Namespace: jenkins.Namespace,
|
||||
},
|
||||
})
|
||||
@@ -145,9 +143,9 @@ func TestEnsureSeedJobs(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
var deployment appsv1.Deployment
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Name: agentName, Namespace: jenkins.Namespace}, &deployment)
|
||||
err = fakeClient.Get(ctx, types.NamespacedName{Namespace: jenkins.Namespace, Name: agentDeploymentName(*jenkins, AgentName)}, &deployment)
|
||||
|
||||
assert.False(t, errors.IsNotFound(err), "Agent deployment hasn't been deleted")
|
||||
assert.True(t, errors.IsNotFound(err), "Agent deployment hasn't been deleted")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -158,7 +156,6 @@ func TestCreateAgent(t *testing.T) {
|
||||
ctx := context.TODO()
|
||||
defer ctrl.Finish()
|
||||
|
||||
agentName := "test-agent"
|
||||
agentSecret := "test-secret"
|
||||
jenkins := jenkinsCustomResource()
|
||||
|
||||
@@ -167,22 +164,22 @@ func TestCreateAgent(t *testing.T) {
|
||||
err := v1alpha2.SchemeBuilder.AddToScheme(scheme.Scheme)
|
||||
assert.NoError(t, err)
|
||||
|
||||
jenkinsClient.EXPECT().GetNode(agentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(agentName, 1, "The jenkins-operator generated agent", "/home/jenkins", agentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(agentName).Return(agentSecret, nil).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNode(AgentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().CreateNode(AgentName, 1, "The jenkins-operator generated agent", "/home/jenkins", AgentName).AnyTimes()
|
||||
jenkinsClient.EXPECT().GetNodeSecret(AgentName).Return(agentSecret, nil).AnyTimes()
|
||||
|
||||
seedJobsClient := New(jenkinsClient, fakeClient, nil)
|
||||
|
||||
err = fakeClient.Create(ctx, &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: agentName,
|
||||
Name: agentDeploymentName(*jenkins, AgentName),
|
||||
Namespace: jenkins.Namespace,
|
||||
},
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
|
||||
// when
|
||||
err = seedJobsClient.createAgent(jenkinsClient, fakeClient, jenkinsCustomResource(), jenkins.Namespace, agentName)
|
||||
err = seedJobsClient.createAgent(jenkinsClient, fakeClient, jenkinsCustomResource(), jenkins.Namespace, AgentName)
|
||||
|
||||
// then
|
||||
assert.NoError(t, err)
|
||||
|
||||
Reference in New Issue
Block a user