droneci_autoscaler
Setup Drone CI autoscaler.
- Default Variables
- droneci_autoscaler_agent_architecture
- droneci_autoscaler_agent_concurrency
- droneci_autoscaler_agent_distro
- droneci_autoscaler_agent_image
- droneci_autoscaler_agent_os
- droneci_autoscaler_agent_package_upgrade
- droneci_autoscaler_agent_packages
- droneci_autoscaler_agent_resolved_dns
- droneci_autoscaler_agent_runcmd
- droneci_autoscaler_agent_token
- droneci_autoscaler_agent_version
- droneci_autoscaler_agent_volumes
- droneci_autoscaler_db_type
- droneci_autoscaler_docker_auth_config
- droneci_autoscaler_exposed_ports
- droneci_autoscaler_gc_enabled
- droneci_autoscaler_image
- droneci_autoscaler_instances
- droneci_autoscaler_interval
- droneci_autoscaler_logs_color
- droneci_autoscaler_logs_debug
- droneci_autoscaler_logs_pretty
- droneci_autoscaler_memory_limit
- droneci_autoscaler_memory_reservation
- droneci_autoscaler_networks
- droneci_autoscaler_networks_applied
- droneci_autoscaler_pool_max
- droneci_autoscaler_pool_min
- droneci_autoscaler_pool_ttl
- droneci_autoscaler_restart_policy
- droneci_autoscaler_runner_env_file
- droneci_autoscaler_runner_privileged
- droneci_autoscaler_runner_volumes
- droneci_autoscaler_server_host
- droneci_autoscaler_server_proto
- droneci_autoscaler_server_token
- droneci_autoscaler_service_directory
- droneci_autoscaler_service_stopped
- droneci_autoscaler_sshkey
- droneci_autoscaler_version
- droneci_autoscaler_volumes
- droneci_autoscaler_watchtower_enabled
- Dependencies
droneci_autoscaler_agent_architecture: amd64
droneci_autoscaler_agent_concurrency: 2
droneci_autoscaler_agent_distro: ubuntu
droneci_autoscaler_agent_image: drone/drone-runner-docker:{{ droneci_autoscaler_agent_version
}}
droneci_autoscaler_agent_os: linux
droneci_autoscaler_agent_package_upgrade: false
Install extra required packages during agents bootstrapping.
droneci_autoscaler_agent_packages: []
droneci_autoscaler_agent_resolved_dns: []
droneci_autoscaler_agent_runcmd: []
droneci_autoscaler_agent_token: myveryownsecret
droneci_autoscaler_agent_version: latest
droneci_autoscaler_agent_volumes: []
Database type to use (default sqlite). All other DB variable will ony be used it DB type is not sqlite.
droneci_autoscaler_db_type: sqlite
Docker registries auth config file (config.json).
droneci_autoscaler_docker_auth_config: |
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "abc...xy="
}
}
}
droneci_autoscaler_exposed_ports: []
droneci_autoscaler_exposed_ports:
- "8080:8080"
droneci_autoscaler_gc_enabled: false
droneci_autoscaler_image: drone/autoscaler:{{ droneci_autoscaler_version }}
droneci_autoscaler_instances: []
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: 1m
droneci_autoscaler_logs_color: false
droneci_autoscaler_logs_debug: false
droneci_autoscaler_logs_pretty: true
droneci_autoscaler_memory_limit: _unset_
droneci_autoscaler_memory_limit: 512m
droneci_autoscaler_memory_reservation: _unset_
droneci_autoscaler_memory_reservation: 256m
droneci_autoscaler_networks:
- name: droneci_default
external: true
droneci_autoscaler_networks:
- name: default
# optional network driver, defaults to 'bride'
driver: host
droneci_autoscaler_networks_applied:
- droneci_default
droneci_autoscaler_pool_max: 1
droneci_autoscaler_pool_min: 0
droneci_autoscaler_pool_ttl: 50m
droneci_autoscaler_restart_policy: always
The file needs to be mounted to the runner and agent.
droneci_autoscaler_runner_env_file: _unset_
droneci_autoscaler_runner_env_file: /etc/drone.conf
droneci_autoscaler_runner_privileged: []
droneci_autoscaler_runner_volumes: []
droneci_autoscaler_server_host: droneci
droneci_autoscaler_server_proto: http
droneci_autoscaler_server_token: myveryownsecret
droneci_autoscaler_service_directory: /var/lib/docker/services/droneci_autoscaler
droneci_autoscaler_service_stopped: false
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.
droneci_autoscaler_sshkey: _unset_
droneci_autoscaler_version: latest
Define required docker volumes. If you don’t use sqlite you could remove the default volume.
droneci_autoscaler_volumes:
- name: data
dest: /var/lib/drone_autoscaler
bind: false
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: false
None.