A simple GitLab custom
executor. All it does is pick
up jobs from gitlab-runner
, spawn a spot instance, run scripts gitlab-runner
provides and shuts down an instance. No ASG to manage, to warm instances.
This isn't meant to be used externally as-is: it contains hardcoded values and basically whatever we need. It does illustrate that a basic use-case is simple. The official autoscaling solution provided GitLab is full of bugs: I spent longer adding debugging to the autoscaler/taskscaler than just writing an alternative that works for us.