diff --git a/Dockerfile b/Dockerfile index a9df412..56f7cef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ ENV RUNNER_DOCKER_PRIVATE_REGISTRY_TOKEN='' ENV RUNNER_DOCKER_ADDITIONAL_VOLUME='' ENV RUNNER_OUTPUT_LIMIT='4096' ENV RUNNER_AUTOUNREGISTER='false' +ENV RUNNER_KUBERNETES_NAMESPACE='' RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E1DD270288B4E6030699E45FA1715D88E1DF1F24 \ && echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu trusty main" >> /etc/apt/sources.list \ diff --git a/README.md b/README.md index 5188943..37c6366 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,15 @@ You can increase the log maximum size by setting the RUNNER_OUTPUT_LIMIT variabl See https://docs.gitlab.com/ce/ci/docker/using_docker_build.html for more info. + +## Using kubernetes executor + +You can use the docker executor by using `RUNNER_EXECUTOR=kubernetes`. It will autodiscover the kubernetes server and credentials. +You can precise the default docker image used and the namespace using RUNNER_DOCKER_IMAGE and RUNNER_KUBERNETES_NAMESPACE. Else if will use the IMAGE provided in CI file and default namespace. + + + + ## Concurrent jobs You an setup your runner to start multiple job in parallel by setting the environment variable `RUNNER_CONCURRENT` to the number of jobs you want to run concurrently. diff --git a/entrypoint.sh b/entrypoint.sh index 3a50c3e..1b68fb4 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -67,11 +67,18 @@ configure_ci_runner() { fi if [[ -n ${RUNNER_DOCKER_ADDITIONAL_VOLUME} ]];then RUNNER_DOCKER_ARGS="$RUNNER_DOCKER_ARGS --docker-volumes ${RUNNER_DOCKER_ADDITIONAL_VOLUME}" - fi + fi + elif [[ "${RUNNER_EXECUTOR}" == "kubernetes" ]];then + if [[ -n ${RUNNER_DOCKER_IMAGE} ]];then + RUNNER_DOCKER_ARGS="--kubernetes-image ${RUNNER_DOCKER_IMAGE}" + fi + if [[ -n ${RUNNER_KUBERNETES_NAMESPACE} ]]; then + RUNNER_DOCKER_ARGS="$RUNNER_DOCKER_ARGS --kubernetes-namespace ${RUNNER_KUBERNETES_NAMESPACE}" fi + fi sudo -HEu ${GITLAB_CI_MULTI_RUNNER_USER} \ gitlab-ci-multi-runner register --config ${GITLAB_CI_MULTI_RUNNER_DATA_DIR}/config.toml \ - -n -u "${CI_SERVER_URL}" -r "${RUNNER_TOKEN}" --name "${RUNNER_DESCRIPTION}" --executor "${RUNNER_EXECUTOR}" --output-limit "${RUNNER_OUTPUT_LIMIT}" ${RUNNER_DOCKER_ARGS} + -n -u "${CI_SERVER_URL}" -r "${RUNNER_TOKEN}" --name "${RUNNER_DESCRIPTION}" --executor "${RUNNER_EXECUTOR}" --output-limit "${RUNNER_OUTPUT_LIMIT}" ${RUNNER_DOCKER_ARGS} else sudo -HEu ${GITLAB_CI_MULTI_RUNNER_USER} \ gitlab-ci-multi-runner register --config ${GITLAB_CI_MULTI_RUNNER_DATA_DIR}/config.toml