#190 Fix run Jenkins master on top of OpenShift
This commit is contained in:
		
							parent
							
								
									80a6d33b0b
								
							
						
					
					
						commit
						09b9972f40
					
				|  | @ -29,6 +29,11 @@ const ( | |||
| 	jenkinsInitConfigurationVolumeName = "init-configuration" | ||||
| 	jenkinsInitConfigurationVolumePath = jenkinsPath + "/init-configuration" | ||||
| 
 | ||||
| 	refEnvironmentName = "REF" | ||||
| 	// RefVolumeName is the Jenkins volume with preinstalled plugins volume name
 | ||||
| 	RefVolumeName = "ref" | ||||
| 	refVolumePath = "/usr/share/jenkins/ref/plugins" | ||||
| 
 | ||||
| 	// GroovyScriptsSecretVolumePath is a path where are groovy scripts used to configure Jenkins
 | ||||
| 	// This script is provided by user
 | ||||
| 	GroovyScriptsSecretVolumePath = jenkinsPath + "/groovy-scripts-secrets" | ||||
|  | @ -59,7 +64,16 @@ func GetJenkinsMasterContainerBaseCommand() []string { | |||
| 
 | ||||
| // GetJenkinsMasterContainerBaseEnvs returns Jenkins master pod envs required by operator
 | ||||
| func GetJenkinsMasterContainerBaseEnvs(jenkins *v1alpha2.Jenkins) []corev1.EnvVar { | ||||
| 	envVars := []corev1.EnvVar{} | ||||
| 	envVars := []corev1.EnvVar{ | ||||
| 		{ | ||||
| 			Name:  refEnvironmentName, | ||||
| 			Value: refVolumePath, | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:  "COPY_REFERENCE_FILE_LOG", | ||||
| 			Value: fmt.Sprintf("%s/%s", getJenkinsHomePath(jenkins), "copy_reference_file.log"), | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	if len(jenkins.Spec.ConfigurationAsCode.Secret.Name) > 0 { | ||||
| 		envVars = append(envVars, corev1.EnvVar{ | ||||
|  | @ -169,6 +183,11 @@ func GetJenkinsMasterContainerBaseVolumeMounts(jenkins *v1alpha2.Jenkins) []core | |||
| 			MountPath: getJenkinsHomePath(jenkins), | ||||
| 			ReadOnly:  false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:      RefVolumeName, | ||||
| 			MountPath: refVolumePath, | ||||
| 			ReadOnly:  false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:      jenkinsScriptsVolumeName, | ||||
| 			MountPath: JenkinsScriptsVolumePath, | ||||
|  |  | |||
|  | @ -496,12 +496,32 @@ func (r *ReconcileJenkins) setDefaults(jenkins *v1alpha2.Jenkins, logger logr.Lo | |||
| 		jenkins.Spec.Master.SecurityContext = &securityContext | ||||
| 	} | ||||
| 
 | ||||
| 	if !refVolumeSet(*jenkins) { | ||||
| 		logger.Info("Setting default Jenkins master volume with preinstalled plugins") | ||||
| 		changed = true | ||||
| 		jenkins.Spec.Master.Volumes = append(jenkins.Spec.Master.Volumes, corev1.Volume{ | ||||
| 			Name: resources.RefVolumeName, | ||||
| 			VolumeSource: corev1.VolumeSource{ | ||||
| 				EmptyDir: &corev1.EmptyDirVolumeSource{}, | ||||
| 			}, | ||||
| 		}) | ||||
| 	} | ||||
| 
 | ||||
| 	if changed { | ||||
| 		return changed, errors.WithStack(r.client.Update(context.TODO(), jenkins)) | ||||
| 	} | ||||
| 	return changed, nil | ||||
| } | ||||
| 
 | ||||
| func refVolumeSet(jenkins v1alpha2.Jenkins) bool { | ||||
| 	for _, volume := range jenkins.Spec.Master.Volumes { | ||||
| 		if volume.Name == resources.RefVolumeName { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| func isJavaOpsVariableNotSet(container v1alpha2.Container) bool { | ||||
| 	for _, env := range container.Env { | ||||
| 		if env.Name == constants.JavaOpsVariableName { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue