e2e: Add ability to toggle dockerdWithinRunnerContainer

This commit is contained in:
Yusuke Kuoka 2022-02-20 04:37:15 +00:00
parent 3c16188371
commit 4e6bfd8114
2 changed files with 28 additions and 1 deletions

View File

@ -28,6 +28,7 @@ spec:
## Replace `mumoshu/actions-runner-dind:dev` with your dind image ## Replace `mumoshu/actions-runner-dind:dev` with your dind image
#dockerdWithinRunnerContainer: true #dockerdWithinRunnerContainer: true
#image: mumoshu/actions-runner-dind:dev #image: mumoshu/actions-runner-dind:dev
dockerdWithinRunnerContainer: ${RUNNER_DOCKERD_WITHIN_RUNNER_CONTAINER}
# #
# Set the MTU used by dockerd-managed network interfaces (including docker-build-ubuntu) # Set the MTU used by dockerd-managed network interfaces (including docker-build-ubuntu)

View File

@ -17,12 +17,15 @@ var (
controllerImageTag = "e2e" controllerImageTag = "e2e"
controllerImage = testing.Img(controllerImageRepo, controllerImageTag) controllerImage = testing.Img(controllerImageRepo, controllerImageTag)
runnerImageRepo = "actionsrunnercontrollere2e/actions-runner" runnerImageRepo = "actionsrunnercontrollere2e/actions-runner"
runnerDindImageRepo = "actionsrunnercontrollere2e/actions-runner-dind"
runnerImageTag = "e2e" runnerImageTag = "e2e"
runnerImage = testing.Img(runnerImageRepo, runnerImageTag) runnerImage = testing.Img(runnerImageRepo, runnerImageTag)
runnerDindImage = testing.Img(runnerDindImageRepo, runnerImageTag)
prebuildImages = []testing.ContainerImage{ prebuildImages = []testing.ContainerImage{
controllerImage, controllerImage,
runnerImage, runnerImage,
runnerDindImage,
} }
builds = []testing.DockerBuild{ builds = []testing.DockerBuild{
@ -36,6 +39,11 @@ var (
Args: []testing.BuildArg{}, Args: []testing.BuildArg{},
Image: runnerImage, Image: runnerImage,
}, },
{
Dockerfile: "../../runner/Dockerfile.dindrunner",
Args: []testing.BuildArg{},
Image: runnerDindImage,
},
} }
certManagerVersion = "v1.1.1" certManagerVersion = "v1.1.1"
@ -52,7 +60,6 @@ var (
"SYNC_PERIOD=" + "10s", "SYNC_PERIOD=" + "10s",
"NAME=" + controllerImageRepo, "NAME=" + controllerImageRepo,
"VERSION=" + controllerImageTag, "VERSION=" + controllerImageTag,
"RUNNER_NAME=" + runnerImageRepo,
"RUNNER_TAG=" + runnerImageTag, "RUNNER_TAG=" + runnerImageTag,
} }
@ -173,6 +180,7 @@ type env struct {
githubTokenWebhook string githubTokenWebhook string
testEnterprise string testEnterprise string
featureFlagEphemeral bool featureFlagEphemeral bool
dockerdWithinRunnerContainer bool
testJobs []job testJobs []job
} }
@ -203,6 +211,12 @@ func initTestEnv(t *testing.T) *env {
ephemeral, _ := strconv.ParseBool(testing.Getenv(t, "TEST_FEATURE_FLAG_EPHEMERAL")) ephemeral, _ := strconv.ParseBool(testing.Getenv(t, "TEST_FEATURE_FLAG_EPHEMERAL"))
e.featureFlagEphemeral = ephemeral e.featureFlagEphemeral = ephemeral
var err error
e.dockerdWithinRunnerContainer, err = strconv.ParseBool(testing.Getenv(t, "TEST_RUNNER_DOCKERD_WITHIN_RUNNER_CONTAINER", "false"))
if err != nil {
panic(fmt.Sprintf("unable to parse bool from TEST_RUNNER_DOCKERD_WITHIN_RUNNER_CONTAINER: %v", err))
}
return e return e
} }
@ -260,6 +274,18 @@ func (e *env) installActionsRunnerController(t *testing.T) {
fmt.Sprintf("RUNNER_FEATURE_FLAG_EPHEMERAL=%v", e.featureFlagEphemeral), fmt.Sprintf("RUNNER_FEATURE_FLAG_EPHEMERAL=%v", e.featureFlagEphemeral),
} }
if e.dockerdWithinRunnerContainer {
varEnv = append(varEnv,
"RUNNER_DOCKERD_WITHIN_RUNNER_CONTAINER=true",
"RUNNER_NAME="+runnerDindImageRepo,
)
} else {
varEnv = append(varEnv,
"RUNNER_DOCKERD_WITHIN_RUNNER_CONTAINER=false",
"RUNNER_NAME="+runnerImageRepo,
)
}
scriptEnv = append(scriptEnv, varEnv...) scriptEnv = append(scriptEnv, varEnv...)
scriptEnv = append(scriptEnv, commonScriptEnv...) scriptEnv = append(scriptEnv, commonScriptEnv...)