Add docker container to a runner pod

This commit is contained in:
Moto Ishizawa 2020-01-30 23:52:40 +09:00
parent 75c30631a7
commit ec3e7de701
1 changed files with 38 additions and 3 deletions

View File

@ -172,6 +172,11 @@ func (r *RunnerReconciler) getRegistrationToken(ctx context.Context, repo string
} }
func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) {
var (
privileged bool = true
group int64 = 0
)
image := runner.Spec.Image image := runner.Spec.Image
if image == "" { if image == "" {
image = defaultImage image = defaultImage
@ -190,19 +195,49 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) {
Image: image, Image: image,
ImagePullPolicy: "Always", ImagePullPolicy: "Always",
Env: []corev1.EnvVar{ Env: []corev1.EnvVar{
corev1.EnvVar{ {
Name: "RUNNER_NAME", Name: "RUNNER_NAME",
Value: runner.Name, Value: runner.Name,
}, },
corev1.EnvVar{ {
Name: "RUNNER_REPO", Name: "RUNNER_REPO",
Value: runner.Spec.Repository, Value: runner.Spec.Repository,
}, },
corev1.EnvVar{ {
Name: "RUNNER_TOKEN", Name: "RUNNER_TOKEN",
Value: runner.Status.Registration.Token, Value: runner.Status.Registration.Token,
}, },
}, },
VolumeMounts: []corev1.VolumeMount{
{
Name: "docker",
MountPath: "/var/run",
},
},
SecurityContext: &corev1.SecurityContext{
RunAsGroup: &group,
},
},
{
Name: "docker",
Image: "docker:19.03.5-dind",
VolumeMounts: []corev1.VolumeMount{
{
Name: "docker",
MountPath: "/var/run",
},
},
SecurityContext: &corev1.SecurityContext{
Privileged: &privileged,
},
},
},
Volumes: []corev1.Volume{
corev1.Volume{
Name: "docker",
VolumeSource: corev1.VolumeSource{
EmptyDir: &corev1.EmptyDirVolumeSource{},
},
}, },
}, },
}, },