Add ability to set the MTU size of the docker in docker container (#385)
* adding abilitiy to set docker in docker MTU size * safeguards to only set MTU env var if it is set
This commit is contained in:
		
							parent
							
								
									3d62e73f8c
								
							
						
					
					
						commit
						2273b198a1
					
				|  | @ -92,6 +92,8 @@ type RunnerSpec struct { | ||||||
| 	DockerdWithinRunnerContainer *bool `json:"dockerdWithinRunnerContainer,omitempty"` | 	DockerdWithinRunnerContainer *bool `json:"dockerdWithinRunnerContainer,omitempty"` | ||||||
| 	// +optional
 | 	// +optional
 | ||||||
| 	DockerEnabled *bool `json:"dockerEnabled,omitempty"` | 	DockerEnabled *bool `json:"dockerEnabled,omitempty"` | ||||||
|  | 	// +optional
 | ||||||
|  | 	DockerMTU *int64 `json:"dockerMTU,omitempty"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ValidateRepository validates repository field.
 | // ValidateRepository validates repository field.
 | ||||||
|  |  | ||||||
|  | @ -689,6 +689,11 @@ func (in *RunnerSpec) DeepCopyInto(out *RunnerSpec) { | ||||||
| 		*out = new(bool) | 		*out = new(bool) | ||||||
| 		**out = **in | 		**out = **in | ||||||
| 	} | 	} | ||||||
|  | 	if in.DockerMTU != nil { | ||||||
|  | 		in, out := &in.DockerMTU, &out.DockerMTU | ||||||
|  | 		*out = new(int64) | ||||||
|  | 		**out = **in | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerSpec.
 | // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerSpec.
 | ||||||
|  |  | ||||||
|  | @ -433,6 +433,9 @@ spec: | ||||||
|                       type: array |                       type: array | ||||||
|                     dockerEnabled: |                     dockerEnabled: | ||||||
|                       type: boolean |                       type: boolean | ||||||
|  |                     dockerMTU: | ||||||
|  |                       format: int64 | ||||||
|  |                       type: integer | ||||||
|                     dockerdContainerResources: |                     dockerdContainerResources: | ||||||
|                       description: ResourceRequirements describes the compute resource requirements. |                       description: ResourceRequirements describes the compute resource requirements. | ||||||
|                       properties: |                       properties: | ||||||
|  |  | ||||||
|  | @ -433,6 +433,9 @@ spec: | ||||||
|                       type: array |                       type: array | ||||||
|                     dockerEnabled: |                     dockerEnabled: | ||||||
|                       type: boolean |                       type: boolean | ||||||
|  |                     dockerMTU: | ||||||
|  |                       format: int64 | ||||||
|  |                       type: integer | ||||||
|                     dockerdContainerResources: |                     dockerdContainerResources: | ||||||
|                       description: ResourceRequirements describes the compute resource requirements. |                       description: ResourceRequirements describes the compute resource requirements. | ||||||
|                       properties: |                       properties: | ||||||
|  |  | ||||||
|  | @ -398,6 +398,9 @@ spec: | ||||||
|               type: array |               type: array | ||||||
|             dockerEnabled: |             dockerEnabled: | ||||||
|               type: boolean |               type: boolean | ||||||
|  |             dockerMTU: | ||||||
|  |               format: int64 | ||||||
|  |               type: integer | ||||||
|             dockerdContainerResources: |             dockerdContainerResources: | ||||||
|               description: ResourceRequirements describes the compute resource requirements. |               description: ResourceRequirements describes the compute resource requirements. | ||||||
|               properties: |               properties: | ||||||
|  |  | ||||||
|  | @ -433,6 +433,9 @@ spec: | ||||||
|                       type: array |                       type: array | ||||||
|                     dockerEnabled: |                     dockerEnabled: | ||||||
|                       type: boolean |                       type: boolean | ||||||
|  |                     dockerMTU: | ||||||
|  |                       format: int64 | ||||||
|  |                       type: integer | ||||||
|                     dockerdContainerResources: |                     dockerdContainerResources: | ||||||
|                       description: ResourceRequirements describes the compute resource requirements. |                       description: ResourceRequirements describes the compute resource requirements. | ||||||
|                       properties: |                       properties: | ||||||
|  |  | ||||||
|  | @ -433,6 +433,9 @@ spec: | ||||||
|                       type: array |                       type: array | ||||||
|                     dockerEnabled: |                     dockerEnabled: | ||||||
|                       type: boolean |                       type: boolean | ||||||
|  |                     dockerMTU: | ||||||
|  |                       format: int64 | ||||||
|  |                       type: integer | ||||||
|                     dockerdContainerResources: |                     dockerdContainerResources: | ||||||
|                       description: ResourceRequirements describes the compute resource requirements. |                       description: ResourceRequirements describes the compute resource requirements. | ||||||
|                       properties: |                       properties: | ||||||
|  |  | ||||||
|  | @ -398,6 +398,9 @@ spec: | ||||||
|               type: array |               type: array | ||||||
|             dockerEnabled: |             dockerEnabled: | ||||||
|               type: boolean |               type: boolean | ||||||
|  |             dockerMTU: | ||||||
|  |               format: int64 | ||||||
|  |               type: integer | ||||||
|             dockerdContainerResources: |             dockerdContainerResources: | ||||||
|               description: ResourceRequirements describes the compute resource requirements. |               description: ResourceRequirements describes the compute resource requirements. | ||||||
|               properties: |               properties: | ||||||
|  |  | ||||||
|  | @ -530,6 +530,15 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if mtu := runner.Spec.DockerMTU; mtu != nil && dockerdInRunner { | ||||||
|  | 		pod.Spec.Containers[0].Env = append(pod.Spec.Containers[0].Env, []corev1.EnvVar{ | ||||||
|  | 			{ | ||||||
|  | 				Name:  "MTU", | ||||||
|  | 				Value: fmt.Sprintf("%d", *runner.Spec.DockerMTU), | ||||||
|  | 			}, | ||||||
|  | 		}...) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	if !dockerdInRunner && dockerEnabled { | 	if !dockerdInRunner && dockerEnabled { | ||||||
| 		runnerVolumeName := "runner" | 		runnerVolumeName := "runner" | ||||||
| 		runnerVolumeMountPath := "/runner" | 		runnerVolumeMountPath := "/runner" | ||||||
|  | @ -612,6 +621,15 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { | ||||||
| 			Resources: runner.Spec.DockerdContainerResources, | 			Resources: runner.Spec.DockerdContainerResources, | ||||||
| 		}) | 		}) | ||||||
| 
 | 
 | ||||||
|  | 		if mtu := runner.Spec.DockerMTU; mtu != nil { | ||||||
|  | 			pod.Spec.Containers[1].Env = append(pod.Spec.Containers[1].Env, []corev1.EnvVar{ | ||||||
|  | 				{ | ||||||
|  | 					Name:  "DOCKERD_ROOTLESS_ROOTLESSKIT_MTU", | ||||||
|  | 					Value: fmt.Sprintf("%d", *runner.Spec.DockerMTU), | ||||||
|  | 				}, | ||||||
|  | 			}...) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if len(runner.Spec.Containers) != 0 { | 	if len(runner.Spec.Containers) != 0 { | ||||||
|  |  | ||||||
|  | @ -33,5 +33,9 @@ for process in "${processes[@]}"; do | ||||||
|     fi |     fi | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | if [ -n "${MTU}" ]; then | ||||||
|  |   ifconfig docker0 mtu ${MTU} up | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| # Wait processes to be running | # Wait processes to be running | ||||||
| entrypoint.sh | entrypoint.sh | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue