Autoscaler
Autoscaler is a driver for GitLab Runner's Custom Executor
that implements an autoscaling algorithm.
The project is very young and still under a heavy development.
Release channels
Binary
The driver is released in the form of a binary and is available from our S3 bucket.
For the latest beta version, based on the current state of main
branch,
visit https://gitlab-runner-custom-autoscaler-downloads.s3.amazonaws.com/main/index.html.
For specific, tagged versions, please replace the main
in the URL with a specific tag. For example,
to download version v0.1.0
, go to https://gitlab-runner-custom-autoscaler-downloads.s3.amazonaws.com/v0.1.0/index.html
.
All stable and RC releases, together with links to the specific S3 bucket, will be listed
on the Releases
page.
Docker
A docker image based off of the main gitlab-runner
Alpine image and containing the autoscaler binary at /usr/local/bin/autoscaler
is made available in the registry.gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler
docker registry.
Latest builds from main
are available with the main
tag, and for a specific release, use the vX.X.X
tag.
The latest
tag represents the latest tagged release. Builds from merge requests are tagged with mr-IID
.
# Get the latest build
docker pull registry.gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/autoscaler:latest
Roadmap
First iteration
-
Implement initial implementation for creating/deleting a VM and provisioning
some method of script execution. We will start with GCP, Windows and
execution via WinRM, but the architecture should allow extensions in the future.
-
Split the mechanism to three independent steps: a) create VM, b) execute
arbitrary script on a VM, c) delete the VM.
-
Implement CLI interface and integration with Custom Executor
-
First, little performance improvements (API usage).
Next iterations (TODO)
-
Provision Docker Engine and return Docker credentials in the output (a future
replacement for Docker Machine executor).
-
Implement a daemon that would manage machines and create them in advance,
like Docker Machine executor of GitLab Runner does now.
-
Support other popular cloud providers: AWS, DigitalOcean, Azure.
Documentation
Documentation is found in docs/README.md.
License
MIT
Author
GitLab, 2019