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