Runner Auto-scaling for AWS EC2
This epic is work required to be confident running production, autoscaled workloads in AWS with the new Taskscaler architecture.
# Requirements
## Experimental
We can continue developing the plugin with confidence that it will continue working.
* [x] `fleeting-plugin-aws` is [published](https://gitlab.com/gitlab-org/fleeting/fleeting-plugin-aws/-/issues/3 "Automatically release fleeting-plugin-aws to gitlab-runner-aws package repo") to a [package repository](https://gitlab.com/gitlab-org/fleeting/fleeting-plugin-aws/-/issues/2 "Create gitlab-runner-aws package repository")
* [x] At least 1 automated [end-to-end tests installs and uses the AWS plugin to run a job](https://gitlab.com/gitlab-org/fleeting/fleeting-plugin-aws/-/issues/4)
* [x] The most critical packages are [unit tested](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29318) and those tests block release
* [ ] An integration tests verifying scale up and down passes and blocks release
* [x] Documentation for the newly introduced executors and the autoscaler configuration options
## Beta
We have high confidence the plugin is correct and automated tests to verify it remains so.
* [x] `fleeting-plugin-aws` build and publication is automated
* [x] All packages are [unit tested](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29318) and block release
* [x] [Integration tests verifying Runner-Taskscaler behavior for a variety of autoscaling scenarios](https://gitlab.com/gitlab-org/fleeting/taskscaler/-/issues/3 "Runner-Taskscaler integration tests")
* [x] [Integration tests verifying Fleeeting-AWS Plugin](https://gitlab.com/gitlab-org/fleeting/fleeting-plugin-aws/-/issues/7) for a variety of provisioning scenearios
* [ ] Any bugs coming up during testing which affect correctness are fixed
## GA
We have high confidence the new system is at least as good as the old system.
* [x] Load tests prove Taskscaler system is at least as stable and performant as the Docker Machine system
* [x] Any bugs coming up during testing which affect performance are fixed
# Further reading
- Taskscaler Provider section of the Next Runner Auto-scaling blueprint: https://docs.gitlab.com/ee/architecture/blueprints/runner_scaling/index.html#taskscaler-provider
- Taskscaler 101: https://youtu.be/GU81g2oOtAQ. This is a code walkthrough and demo of how Taskscaler and Fleeting fit into the existing Runner (23 minutes).
- Code locations: https://gitlab.com/gitlab-org/fleeting
- Development instructions: https://docs.gitlab.com/runner/development/#new-auto-scaling-taskscaler-in-gitlab-runner-since-1560
epic