Skip to content

Draft: Add Taskscaler implementation

Arran Walker requested to merge ajwalker/taskscaler into main

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"

Related issues

#29216 (closed)

Edited by Darren Eastman

Merge request reports