Draft: Add Taskscaler implementation
What does this MR do?
Adds experimental taskscaler implementation.
Below are two configurations (Using the Google COS image in GCP). The autoscaler config for both is identical.
Docker Autoscaler
concurrent = 15
[[runners]]
name = "experimental-docker-autoscaler"
url = "https://gitlab.com/"
token = "<token>"
executor = "docker+autoscaler"
[runners.docker]
image = "busybox:latest"
volumes = ["/cache"]
[runners.autoscaler]
capacity_per_instance = 1
max_use_count = 1
max_instances = 20
plugin = "fleeting-plugin-googlecompute"
[[runners.autoscaler.policy]]
idle_count = 5
[runners.autoscaler.instance_group_settings]
username = "core"
[runners.autoscaler.plugin_config]
credentials_file = "<snip>/<snip>.json"
project = "<snip>"
zone = "europe-west4-b"
name = "<snip>-asg"
Shell Autoscaler
concurrent = 15
[[runners]]
name = "experimental-docker-autoscaler"
url = "https://gitlab.com/"
token = "<token>"
executor = "shell+autoscaler"
shell = "bash"
[runners.autoscaler]
capacity_per_instance = 1
max_use_count = 1
max_instances = 20
plugin = "fleeting-plugin-googlecompute"
[[runners.autoscaler.policy]]
idle_count = 5
[runners.autoscaler.instance_group_settings]
username = "core"
[runners.autoscaler.plugin_config]
credentials_file = "<snip>/<snip>.json"
project = "<snip>"
zone = "europe-west4-b"
name = "<snip>-asg"
Related issues
Edited by Darren Eastman