Add Readiness and Liveness probes - code cleanup
This commit is contained in:
		
							parent
							
								
									3dde0b0f56
								
							
						
					
					
						commit
						70f35c47f0
					
				|  | @ -10,8 +10,8 @@ spec: | ||||||
|        path: /login |        path: /login | ||||||
|        port: 8080 |        port: 8080 | ||||||
|        scheme: HTTP |        scheme: HTTP | ||||||
|      failureThreshold: 12 |      failureThreshold: 10 | ||||||
|      initialDelaySeconds: 20 |      initialDelaySeconds: 30 | ||||||
|      periodSeconds: 10 |      periodSeconds: 10 | ||||||
|      successThreshold: 1 |      successThreshold: 1 | ||||||
|      timeoutSeconds: 5 |      timeoutSeconds: 5 | ||||||
|  | @ -20,8 +20,8 @@ spec: | ||||||
|        path: /login |        path: /login | ||||||
|        port: 8080 |        port: 8080 | ||||||
|        scheme: HTTP |        scheme: HTTP | ||||||
|      initialDelaySeconds: 20 |      initialDelaySeconds: 35 | ||||||
|      failureThreshold: 12 |      failureThreshold: 10 | ||||||
|      periodSeconds: 10 |      periodSeconds: 10 | ||||||
|      successThreshold: 1 |      successThreshold: 1 | ||||||
|      timeoutSeconds: 5 |      timeoutSeconds: 5 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ package jenkins | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"k8s.io/apimachinery/pkg/util/intstr" |  | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 
 | 
 | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
|  | @ -22,6 +21,7 @@ import ( | ||||||
| 	"k8s.io/apimachinery/pkg/api/resource" | 	"k8s.io/apimachinery/pkg/api/resource" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/runtime" | 	"k8s.io/apimachinery/pkg/runtime" | ||||||
|  | 	"k8s.io/apimachinery/pkg/util/intstr" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/client" | 	"sigs.k8s.io/controller-runtime/pkg/client" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/controller" | 	"sigs.k8s.io/controller-runtime/pkg/controller" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/handler" | 	"sigs.k8s.io/controller-runtime/pkg/handler" | ||||||
|  |  | ||||||
|  | @ -25,7 +25,6 @@ func TestConfiguration(t *testing.T) { | ||||||
| 	// Deletes test namespace
 | 	// Deletes test namespace
 | ||||||
| 	defer ctx.Cleanup() | 	defer ctx.Cleanup() | ||||||
| 
 | 
 | ||||||
| 	t.Logf("BASE") |  | ||||||
| 	jenkinsCRName := "e2e" | 	jenkinsCRName := "e2e" | ||||||
| 	numberOfExecutors := 6 | 	numberOfExecutors := 6 | ||||||
| 	systemMessage := "Configuration as Code integration works!!!" | 	systemMessage := "Configuration as Code integration works!!!" | ||||||
|  | @ -43,7 +42,6 @@ func TestConfiguration(t *testing.T) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// base
 | 	// base
 | ||||||
| 
 |  | ||||||
| 	createUserConfigurationSecret(t, jenkinsCRName, namespace, systemMessageEnvName, systemMessage) | 	createUserConfigurationSecret(t, jenkinsCRName, namespace, systemMessageEnvName, systemMessage) | ||||||
| 	createUserConfigurationConfigMap(t, jenkinsCRName, namespace, numberOfExecutors, fmt.Sprintf("${%s}", systemMessageEnvName)) | 	createUserConfigurationConfigMap(t, jenkinsCRName, namespace, numberOfExecutors, fmt.Sprintf("${%s}", systemMessageEnvName)) | ||||||
| 	jenkins := createJenkinsCR(t, jenkinsCRName, namespace, &[]v1alpha1.SeedJob{mySeedJob.SeedJob}) | 	jenkins := createJenkinsCR(t, jenkinsCRName, namespace, &[]v1alpha1.SeedJob{mySeedJob.SeedJob}) | ||||||
|  | @ -141,30 +139,32 @@ func verifyJenkinsMasterPodAttributes(t *testing.T, jenkins *v1alpha1.Jenkins) { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if jenkinsPod.Spec.Containers[0].Image != jenkins.Spec.Master.Image { | 	jenkinsContainer := jenkinsPod.Spec.Containers[0] | ||||||
| 		t.Fatalf("Invalid jenkins pod image expected '%s', actual '%s'", jenkins.Spec.Master.Image, jenkinsPod.Spec.Containers[0].Image) | 
 | ||||||
|  | 	if jenkinsContainer.Image != jenkins.Spec.Master.Image { | ||||||
|  | 		t.Fatalf("Invalid jenkins pod image expected '%s', actual '%s'", jenkins.Spec.Master.Image, jenkinsContainer.Image) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !reflect.DeepEqual(jenkinsPod.Spec.Containers[0].Resources, jenkins.Spec.Master.Resources) { | 	if !reflect.DeepEqual(jenkinsContainer.Resources, jenkins.Spec.Master.Resources) { | ||||||
| 		t.Fatalf("Invalid jenkins pod continer resources expected '%+v', actual '%+v'", jenkins.Spec.Master.Resources, jenkinsPod.Spec.Containers[0].Resources) | 		t.Fatalf("Invalid jenkins pod continer resources expected '%+v', actual '%+v'", jenkins.Spec.Master.Resources, jenkinsContainer.Resources) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !reflect.DeepEqual(jenkinsPod.Spec.NodeSelector, jenkins.Spec.Master.NodeSelector) { | 	if !reflect.DeepEqual(jenkinsPod.Spec.NodeSelector, jenkins.Spec.Master.NodeSelector) { | ||||||
| 		t.Fatalf("Invalid jenkins pod node selector expected '%+v', actual '%+v'", jenkins.Spec.Master.NodeSelector, jenkinsPod.Spec.NodeSelector) | 		t.Fatalf("Invalid jenkins pod node selector expected '%+v', actual '%+v'", jenkins.Spec.Master.NodeSelector, jenkinsPod.Spec.NodeSelector) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !reflect.DeepEqual(jenkinsPod.Spec.Containers[0].ReadinessProbe, jenkins.Spec.Master.ReadinessProbe) { | 	if !reflect.DeepEqual(jenkinsContainer.ReadinessProbe, jenkins.Spec.Master.ReadinessProbe) { | ||||||
| 		t.Fatalf("Invalid jenkins pod readinessProbe. Expected '%+v', actual '%+v'", jenkins.Spec.Master.NodeSelector, jenkinsPod.Spec.NodeSelector) | 		t.Fatalf("Invalid jenkins pod readinessProbe. Expected '%+v', actual '%+v'", jenkins.Spec.Master.ReadinessProbe, jenkinsContainer.ReadinessProbe) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if !reflect.DeepEqual(jenkinsPod.Spec.Containers[0].LivenessProbe, jenkins.Spec.Master.LivenessProbe) { | 	if !reflect.DeepEqual(jenkinsContainer.LivenessProbe, jenkins.Spec.Master.LivenessProbe) { | ||||||
| 		t.Fatalf("Invalid jenkins pod livenessProbe. Expected '%+v', actual '%+v'", jenkins.Spec.Master.NodeSelector, jenkinsPod.Spec.NodeSelector) | 		t.Fatalf("Invalid jenkins pod livenessProbe. Expected '%+v', actual '%+v'", jenkins.Spec.Master.LivenessProbe, jenkinsContainer.LivenessProbe) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	requiredEnvs := resources.GetJenkinsMasterPodBaseEnvs() | 	requiredEnvs := resources.GetJenkinsMasterPodBaseEnvs() | ||||||
| 	requiredEnvs = append(requiredEnvs, jenkins.Spec.Master.Env...) | 	requiredEnvs = append(requiredEnvs, jenkins.Spec.Master.Env...) | ||||||
| 	if !reflect.DeepEqual(jenkinsPod.Spec.Containers[0].Env, requiredEnvs) { | 	if !reflect.DeepEqual(jenkinsContainer.Env, requiredEnvs) { | ||||||
| 		t.Fatalf("Invalid jenkins pod continer resources expected '%+v', actual '%+v'", requiredEnvs, jenkinsPod.Spec.Containers[0].Env) | 		t.Fatalf("Invalid jenkins pod continer resources expected '%+v', actual '%+v'", requiredEnvs, jenkinsContainer.Env) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	t.Log("Jenkins pod attributes are valid") | 	t.Log("Jenkins pod attributes are valid") | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ package e2e | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"k8s.io/apimachinery/pkg/util/intstr" |  | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1" | ||||||
|  | @ -15,6 +14,7 @@ import ( | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/labels" | 	"k8s.io/apimachinery/pkg/labels" | ||||||
| 	"k8s.io/apimachinery/pkg/types" | 	"k8s.io/apimachinery/pkg/types" | ||||||
|  | 	"k8s.io/apimachinery/pkg/util/intstr" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func getJenkins(t *testing.T, namespace, name string) *v1alpha1.Jenkins { | func getJenkins(t *testing.T, namespace, name string) *v1alpha1.Jenkins { | ||||||
|  | @ -94,7 +94,9 @@ func createJenkinsCR(t *testing.T, name, namespace string, seedJob *[]v1alpha1.S | ||||||
| 							Scheme: corev1.URISchemeHTTP, | 							Scheme: corev1.URISchemeHTTP, | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 					InitialDelaySeconds: int32(50), | 					InitialDelaySeconds: int32(35), | ||||||
|  | 					TimeoutSeconds:      int32(4), | ||||||
|  | 					FailureThreshold:    int32(10), | ||||||
| 				}, | 				}, | ||||||
| 				LivenessProbe: &corev1.Probe{ | 				LivenessProbe: &corev1.Probe{ | ||||||
| 					Handler: corev1.Handler{ | 					Handler: corev1.Handler{ | ||||||
|  | @ -105,8 +107,8 @@ func createJenkinsCR(t *testing.T, name, namespace string, seedJob *[]v1alpha1.S | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 					InitialDelaySeconds: int32(40), | 					InitialDelaySeconds: int32(40), | ||||||
| 					TimeoutSeconds:      int32(8), | 					TimeoutSeconds:      int32(4), | ||||||
| 					FailureThreshold:    int32(15), | 					FailureThreshold:    int32(10), | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			SeedJobs: seedJobs, | 			SeedJobs: seedJobs, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue