Draft: Add Taskscaler implementation

⚠️ depends on !3337 (merged) ⚠️

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"

#29216 (closed)

Edited by Darren Eastman

Merge request reports

Loading