xoxys.droneci_autoscaler/index.md
Robert Kaussow 6e495519b9 commit f6cff44421
Author: Robert Kaussow <mail@thegeeklab.de>
Date:   Mon Jun 20 22:20:03 2022 +0200

    chore: switch to main as default branch
2022-06-20 20:30:24 +00:00

11 KiB

title type
droneci_autoscaler docs

Source Code Build Status License: MIT

Setup Drone CI autoscaler.


Default Variables

droneci_autoscaler_agent_architecture

Default value

droneci_autoscaler_agent_architecture: amd64

droneci_autoscaler_agent_concurrency

Default value

droneci_autoscaler_agent_concurrency: 2

droneci_autoscaler_agent_distro

Default value

droneci_autoscaler_agent_distro: ubuntu

droneci_autoscaler_agent_image

Default value

droneci_autoscaler_agent_image: drone/drone-runner-docker:{{ droneci_autoscaler_agent_version
  }}

droneci_autoscaler_agent_os

Default value

droneci_autoscaler_agent_os: linux

droneci_autoscaler_agent_package_upgrade

Default value

droneci_autoscaler_agent_package_upgrade: false

droneci_autoscaler_agent_packages

Install extra required packages during agents bootstrapping.

Default value

droneci_autoscaler_agent_packages: []

droneci_autoscaler_agent_resolved_dns

Default value

droneci_autoscaler_agent_resolved_dns: []

droneci_autoscaler_agent_runcmd

Default value

droneci_autoscaler_agent_runcmd: []

droneci_autoscaler_agent_token

Default value

droneci_autoscaler_agent_token: myveryownsecret

droneci_autoscaler_agent_version

Default value

droneci_autoscaler_agent_version: latest

droneci_autoscaler_agent_volumes

Default value

droneci_autoscaler_agent_volumes: []

droneci_autoscaler_db_type

Database type to use (default sqlite). All other DB variable will ony be used it DB type is not sqlite.

Default value

droneci_autoscaler_db_type: sqlite

droneci_autoscaler_docker_auth_config

Docker registries auth config file (config.json).

Default value

droneci_autoscaler_docker_auth_config: |
  {
    "auths": {
      "https://index.docker.io/v1/": {
        "auth": "abc...xy="
      }
    }
  }  

droneci_autoscaler_exposed_ports

Default value

droneci_autoscaler_exposed_ports: []

Example usage

droneci_autoscaler_exposed_ports:
  - "8080:8080"

droneci_autoscaler_gc_enabled

Default value

droneci_autoscaler_gc_enabled: false

droneci_autoscaler_image

Default value

droneci_autoscaler_image: drone/autoscaler:{{ droneci_autoscaler_version }}

droneci_autoscaler_instances

Default value

droneci_autoscaler_instances: []

Example usage

droneci_autoscaler_instances:
  - name: scaler_amd64
    pool_max: 50
    pool_ttl: 120m
    agent_concurrency: 15
    agent_architecture: amd64
    sshkey: "dummy"
    api_host: "drone-amd64.example.com"
    docker_auth_config: |
      {
        "auths": {
          "https://index.docker.io/v1/": {
            "auth": "abc...xy="
          }
        }
      }      
    exposed_ports:
      - "8080:8080"
    provider_config:
      - name: DRONE_HETZNERCLOUD_DATACENTER
        value: fsn1-dc14
      - name: DRONE_HETZNERCLOUD_TOKEN
        value: abc123
      - name: DRONE_HETZNERCLOUD_IMAGE
        value: ubuntu-18.04
      - name: DRONE_HETZNERCLOUD_TYPE
        value:
      # SSH key id from hcloud API
      - name: DRONE_HETZNERCLOUD_SSHKEY
        value:
      - name: DRONE_HETZNERCLOUD_USERDATA_FILE
        value: /etc/scaler/userdata.yml

droneci_autoscaler_interval

Default value

droneci_autoscaler_interval: 1m

droneci_autoscaler_logs_color

Default value

droneci_autoscaler_logs_color: false

droneci_autoscaler_logs_debug

Default value

droneci_autoscaler_logs_debug: false

droneci_autoscaler_logs_pretty

Default value

droneci_autoscaler_logs_pretty: true

droneci_autoscaler_memory_limit

Default value

droneci_autoscaler_memory_limit: _unset_

Example usage

droneci_autoscaler_memory_limit: 512m

droneci_autoscaler_memory_reservation

Default value

droneci_autoscaler_memory_reservation: _unset_

Example usage

droneci_autoscaler_memory_reservation: 256m

droneci_autoscaler_networks

Default value

droneci_autoscaler_networks:
  - name: droneci_default
    external: true

Example usage

droneci_autoscaler_networks:
  - name: default
    # optional network driver, defaults to 'bride'
    driver: host

droneci_autoscaler_networks_applied

Default value

droneci_autoscaler_networks_applied:
  - droneci_default

droneci_autoscaler_pool_max

Default value

droneci_autoscaler_pool_max: 1

droneci_autoscaler_pool_min

Default value

droneci_autoscaler_pool_min: 0

droneci_autoscaler_pool_ttl

Default value

droneci_autoscaler_pool_ttl: 50m

droneci_autoscaler_restart_policy

Default value

droneci_autoscaler_restart_policy: always

droneci_autoscaler_runner_env_file

The file needs to be mounted to the runner and agent.

Default value

droneci_autoscaler_runner_env_file: _unset_

Example usage

droneci_autoscaler_runner_env_file: /etc/drone.conf

droneci_autoscaler_runner_privileged

Default value

droneci_autoscaler_runner_privileged: []

droneci_autoscaler_runner_volumes

Default value

droneci_autoscaler_runner_volumes: []

droneci_autoscaler_server_host

Default value

droneci_autoscaler_server_host: droneci

droneci_autoscaler_server_proto

Default value

droneci_autoscaler_server_proto: http

droneci_autoscaler_server_token

Default value

droneci_autoscaler_server_token: myveryownsecret

droneci_autoscaler_service_directory

Default value

droneci_autoscaler_service_directory: /var/lib/docker/services/droneci_autoscaler

droneci_autoscaler_service_stopped

Default value

droneci_autoscaler_service_stopped: false

droneci_autoscaler_sshkey

SSH private key that will by used by the autoscaler to connect to the agents. If you dont provide a private key, a keypair will be generated automatically.

Default value

droneci_autoscaler_sshkey: _unset_

droneci_autoscaler_version

Default value

droneci_autoscaler_version: latest

droneci_autoscaler_volumes

Define required docker volumes. If you don't use sqlite you could remove the default volume.

Default value

droneci_autoscaler_volumes:
  - name: data
    dest: /var/lib/drone_autoscaler
    bind: false

Example usage

droneci_autoscaler_volumes:
  # Instead of the name you could specify a path on the container host system,
  # but you also have to enable bind mount for this volume
  - name: data
    # target location inside the container
    dest: /var/lib/drone_autoscaler
    # enable bind mount, if false volume will be configured as named volume
    # keep in mind you MUST set bind in any case
    bind: True

droneci_autoscaler_watchtower_enabled

Default value

droneci_autoscaler_watchtower_enabled: false

Dependencies

None.