parametrized working directory (#185)
* parametrized working directory * manifests v3.0
This commit is contained in:
		
							parent
							
								
									4e93879b8f
								
							
						
					
					
						commit
						ee8fb5a388
					
				|  | @ -342,6 +342,10 @@ spec: | |||
|               value: abcd1234 | ||||
|           securityContext: | ||||
|             runAsUser: 0 | ||||
|       # if workDir is not specified, the default working directory is /runner/_work | ||||
|       # this setting allows you to customize the working directory location | ||||
|       # for example, the below setting is the same as on the ubuntu-18.04 image | ||||
|       workDir: /home/runner/work | ||||
| ``` | ||||
| 
 | ||||
| ## Runner labels | ||||
|  |  | |||
|  | @ -59,6 +59,8 @@ type RunnerSpec struct { | |||
| 
 | ||||
| 	// +optional
 | ||||
| 	Volumes []corev1.Volume `json:"volumes,omitempty"` | ||||
| 	// +optional
 | ||||
| 	WorkDir string `json:"workDir,omitempty"` | ||||
| 
 | ||||
| 	// +optional
 | ||||
| 	InitContainers []corev1.Container `json:"initContainers,omitempty"` | ||||
|  |  | |||
|  | @ -1533,6 +1533,8 @@ spec: | |||
|                           - name | ||||
|                         type: object | ||||
|                       type: array | ||||
|                     workDir: | ||||
|                       type: string | ||||
|                   type: object | ||||
|               type: object | ||||
|           required: | ||||
|  |  | |||
|  | @ -1533,6 +1533,8 @@ spec: | |||
|                           - name | ||||
|                         type: object | ||||
|                       type: array | ||||
|                     workDir: | ||||
|                       type: string | ||||
|                   type: object | ||||
|               type: object | ||||
|           required: | ||||
|  |  | |||
|  | @ -1526,6 +1526,8 @@ spec: | |||
|                   - name | ||||
|                 type: object | ||||
|               type: array | ||||
|             workDir: | ||||
|               type: string | ||||
|           type: object | ||||
|         status: | ||||
|           description: RunnerStatus defines the observed state of Runner | ||||
|  |  | |||
|  | @ -1533,6 +1533,8 @@ spec: | |||
|                           - name | ||||
|                         type: object | ||||
|                       type: array | ||||
|                     workDir: | ||||
|                       type: string | ||||
|                   type: object | ||||
|               type: object | ||||
|           required: | ||||
|  |  | |||
|  | @ -1533,6 +1533,8 @@ spec: | |||
|                           - name | ||||
|                         type: object | ||||
|                       type: array | ||||
|                     workDir: | ||||
|                       type: string | ||||
|                   type: object | ||||
|               type: object | ||||
|           required: | ||||
|  |  | |||
|  | @ -1526,6 +1526,8 @@ spec: | |||
|                   - name | ||||
|                 type: object | ||||
|               type: array | ||||
|             workDir: | ||||
|               type: string | ||||
|           type: object | ||||
|         status: | ||||
|           description: RunnerStatus defines the observed state of Runner | ||||
|  |  | |||
|  | @ -307,6 +307,11 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | |||
| 		runnerImage = r.RunnerImage | ||||
| 	} | ||||
| 
 | ||||
| 	workDir := runner.Spec.WorkDir | ||||
| 	if workDir == "" { | ||||
| 		workDir = "/runner/_work" | ||||
| 	} | ||||
| 
 | ||||
| 	runnerImagePullPolicy := runner.Spec.ImagePullPolicy | ||||
| 	if runnerImagePullPolicy == "" { | ||||
| 		runnerImagePullPolicy = corev1.PullAlways | ||||
|  | @ -345,6 +350,10 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | |||
| 			Name:  "GITHUB_URL", | ||||
| 			Value: r.GitHubClient.GithubBaseURL, | ||||
| 		}, | ||||
| 		{ | ||||
| 			Name:  "RUNNER_WORKDIR", | ||||
| 			Value: workDir, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	env = append(env, runner.Spec.Env...) | ||||
|  | @ -392,7 +401,7 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | |||
| 		pod.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{ | ||||
| 			{ | ||||
| 				Name:      "work", | ||||
| 				MountPath: "/runner/_work", | ||||
| 				MountPath: workDir, | ||||
| 			}, | ||||
| 			{ | ||||
| 				Name:      "externals", | ||||
|  | @ -409,7 +418,7 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | |||
| 			VolumeMounts: []corev1.VolumeMount{ | ||||
| 				{ | ||||
| 					Name:      "work", | ||||
| 					MountPath: "/runner/_work", | ||||
| 					MountPath: workDir, | ||||
| 				}, | ||||
| 				{ | ||||
| 					Name:      "externals", | ||||
|  |  | |||
|  | @ -27,6 +27,10 @@ else | |||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| if [ -n "${RUNNER_WORKDIR}" ]; then | ||||
|   WORKDIR_ARG="--work ${RUNNER_WORKDIR}" | ||||
| fi | ||||
| 
 | ||||
| if [ -n "${RUNNER_LABELS}" ]; then | ||||
|   LABEL_ARG="--labels ${RUNNER_LABELS}" | ||||
| fi | ||||
|  | @ -41,7 +45,7 @@ if [ -z "${RUNNER_REPO}" ] && [ -n "${RUNNER_ORG}" ] && [ -n "${RUNNER_GROUP}" ] | |||
| fi | ||||
| 
 | ||||
| cd /runner | ||||
| ./config.sh --unattended --replace --name "${RUNNER_NAME}" --url "${GITHUB_URL}${ATTACH}" --token "${RUNNER_TOKEN}" ${RUNNER_GROUP_ARG} ${LABEL_ARG} | ||||
| ./config.sh --unattended --replace --name "${RUNNER_NAME}" --url "${GITHUB_URL}${ATTACH}" --token "${RUNNER_TOKEN}" ${RUNNER_GROUP_ARG} ${LABEL_ARG} ${WORKDIR_ARG} | ||||
| 
 | ||||
| # Hack due to the DinD volumes | ||||
| mv ./externalstmp/* ./externals/ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue